✅ 一、准备工作
域名已备案(国内服务器)
SSL/TLS 证书和私钥文件
通常包括:
your_domain.crt:服务器证书
your_domain.key:私钥文件
chain.crt 或 ca.crt:中间证书链(如果有的话)
安装好 Nginx
✅ 二、证书格式要求
Nginx 推荐使用 PEM 格式的证书。如果你收到的是多个文件:
合并证书链(如有):
cat your_domain.crt chain.crt > fullchain.crt
✅ 三、Nginx HTTPS 配置示例
编辑站点配置文件(如 /etc/nginx/conf.d/yourdomain.conf):
`
server {
listen 443 ssl http2; # 开启 HTTPS + HTTP/2(需 OpenSSL 1.0.2+ 和 Nginx 支持)
server_name yourdomain.com www.yourdomain.com;
# SSL 配置
ssl_certificate /path/to/fullchain.crt;
ssl_certificate_key /path/to/your_domain.key;
ssl_protocols TLSv1.2 TLSv1.3; # 禁用不安全旧协议
ssl_ciphers HIGH:!aNULL:!MD5:!kEDH; # 使用强加密套件
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# OCSP Stapling(可选)
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
# HSTS 头(建议第一次启用时设置 max-age=60,测试无误后再改为一年)
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
# 日志格式
access_log /var/log/nginx/yourdomain_https_access.log;
error_log /var/log/nginx/yourdomain_https_error.log;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ =404;
}
# 可以在这里添加反向代理等配置
}
`
✅ 四、强制 HTTP 跳转 HTTPS(推荐)
新建一个监听 80 端口的 server 块:
server { listen 80; server_name yourdomain.com www.yourdomain.com; return 301 https://$host$request_uri; }
✅ 五、检查配置 & 重启 Nginx
`
检查语法是否正确
nginx -t
重载配置
systemctl reload nginx
`
✅ 六、图形化 SSL/TLS 长期管理控制台
web控制台
✅ 七、高级配置建议(生产环境)
启用 HTTP/2:需要 TLSv1.2+ 和 ALPN 支持,确保 Nginx 编译时带有 --with-http_v2_module
OCSP Stapling:提升证书验证速度,减少客户端等待时间
HSTS Preload List:如果想加入浏览器预加载列表,请前往 hstspreload.org 提交
✅ 八、常见问题排查
HTTPS 页面无法打开:端口未开放或证书路径错误;检查防火墙、证书路径、Nginx 配置
"证书不受信任":中间证书未合并;确保合并了完整的证书链
"证书过期":未及时更新;设置监控或使用 Let's Encrypt 自动更新
"ERR_SSL_VERSION_OR_CIPHER_MISMATCH":协议或加密套件不兼容;修改 ssl_protocols 和 ssl_ciphers
欢迎继续提问,我可以提供更定制化的配置方案 😊