在CentOS上配置Nginx以支持SSL和HTTP Strict Transport Security (HSTS) 需要几个步骤。以下是一个基本的指南:
安装Nginx: 如果你还没有安装Nginx,可以使用以下命令安装:
sudo yum install epel-release
sudo yum install nginx
获取SSL证书: 你可以从证书颁发机构(CA)购买SSL证书,或者使用Let’s Encrypt免费获取。以下是使用Certbot(一个自动化的Let’s Encrypt客户端)获取证书的示例:
sudo yum install certbot python2-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
在安装过程中,Certbot会自动配置Nginx并重启服务。
配置HSTS:
HSTS可以通过在Nginx配置文件中添加Strict-Transport-Security头来实现。编辑你的Nginx配置文件,通常位于/etc/nginx/nginx.conf或/etc/nginx/conf.d/yourdomain.com.conf。
在server块中添加以下行:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
这里的max-age=31536000表示HSTS策略将持续一年(以秒为单位)。includeSubDomains表示所有子域名也将强制使用HTTPS。
请确保你的Nginx配置中的其他SSL相关设置是正确的,例如监听443端口的server块,SSL证书和密钥的路径等。
测试配置并重启Nginx: 在应用更改之前,使用以下命令测试Nginx配置是否正确:
sudo nginx -t
如果配置测试通过,重启Nginx以应用更改:
sudo systemctl restart nginx
验证HSTS:
你可以使用浏览器的开发者工具或在线工具来验证HSTS是否已正确实施。此外,可以使用curl命令行工具来检查响应头:
curl -I https://yourdomain.com
检查输出中是否有Strict-Transport-Security头。
请注意,一旦启用了HSTS,浏览器将强制使用HTTPS访问你的网站,即使在第一次访问时也是如此。因此,在启用HSTS之前,请确保你的网站已经正确配置了SSL证书,并且可以通过HTTPS访问。如果你在测试过程中遇到问题,可以暂时从Nginx配置文件中删除HSTS头,然后重启Nginx以恢复正常访问。