在Nginx服务器中配置全站HTTPS安全连接是一项重要的任务,可以确保网站数据传输的安全性,以下是详细的步骤和注意事项:
1、准备工作
确保已经安装Nginx,并且能够通过HTTP访问。
确认Nginx是否安装了SSL模块,如果没有,需要重新编译Nginx以包含该模块。
拥有有效的SSL证书和私钥文件,如果没有,可以通过Let's Encrypt等免费服务申请。
2、下载并安装acme.sh
使用以下命令下载并安装acme.sh(用于自动申请和管理Let's Encrypt证书):
curl https://get.acme.sh | sh -s email=my@example.com
检查是否成功安装,并进入acme.sh目录:
cd ~/.acme.sh/
3、申请SSL证书
获取对应域名服务商的DNS API,并根据提供商的不同设置环境变量。
使用acme.sh申请泛域名SSL证书,包括主域名和通配符域名:
acme.sh --issue --dns dns_dp -d yourdomain.com -d *.yourdomain.com
成功后,证书和密钥将保存在~/.acme.sh/yourdomain.com/
目录下。
4、配置Nginx
编辑Nginx配置文件(通常位于/usr/local/nginx/conf/nginx.conf
或/etc/nginx/nginx.conf
),添加HTTPS配置。
注释掉之前的HTTP server配置,新增HTTPS server块:
server { listen 80; server_name yourdomain.com; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name yourdomain.com; ssl_certificate /root/.acme.sh/yourdomain.com/yourdomain.com.cer; ssl_certificate_key /root/.acme.sh/yourdomain.com/yourdomain.com.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } }
确保证书路径正确,并根据实际情况调整其他配置项。
5、重启Nginx
保存配置文件后,重启Nginx以应用更改:
/usr/local/nginx/sbin/nginx -s reload
6、测试配置
使用浏览器访问你的网站,确保它现在通过HTTPS提供服务。
检查Nginx的错误日志以确保没有配置错误。
7、定期更新证书
Let's Encrypt证书有效期为90天,因此需要定期更新,acme.sh会自动处理续期,但建议手动检查以确保一切正常。
通过以上步骤,你可以在Nginx服务器上配置全站HTTPS安全连接,提高网站的安全性,记得定期检查和维护你的SSL证书,以应对新的安全威胁。