.crt
或.pem
证书文件和.key
私钥文件)将获取的SSL证书文件(如yourdomain.crt
或yourdomain.pem
)和私钥文件(yourdomain.key
)复制到Nginx的conf
目录下,建议创建一个ssl
子目录存放:
nginx-1.xx.x/
└── conf/
└── ssl/
├── yourdomain.crt
└── yourdomain.key
编辑nginx.conf
文件(位于conf
目录下),在需要启用SSL的server块中添加或修改配置:
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate ssl/yourdomain.crt;
ssl_certificate_key ssl/yourdomain.key;
# 优化SSL配置
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
# 推荐的安全协议和加密套件
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
# 其他配置...
location / {
root html;
index index.html index.htm;
}
}
添加以下server块将所有HTTP请求重定向到HTTPS:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$server_name$request_uri;
}
验证配置文件语法:
nginx -t
如果显示"configuration file test is successful"则表示配置正确
重启Nginx服务:
nginx -s reload
如果浏览器显示"证书不受信任",可能需要配置中间证书。将中间证书内容追加到你的证书文件中:
-----BEGIN CERTIFICATE-----
(你的主证书内容)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(中间证书内容)
-----END CERTIFICATE-----
确保Nginx进程有权限读取证书文件。在Windows上,确保IIS或Nginx服务账户有文件读取权限。
如果443端口被占用,可以使用netstat -ano
查找占用进程并处理。
确保Windows防火墙允许443端口的入站连接。
https://yourdomain.com
,检查是否有安全锁标志.key
),丢失后将无法恢复如需更高级的安全配置,可以考虑添加HSTS头、OCSP装订等安全特性。