https证书解密通常在nginx层完成,后端仅处理http请求;需配置443端口监听、证书路径、tls版本、proxy_pass转发及x-forwarded-proto头,并可启用hsts与强制重定向。

在Nginx作为负载均衡器的架构中,HTTPS证书解密(即SSL/TLS终止)通常在Nginx层完成,后端服务只需处理HTTP请求。这种方式减轻后端压力、简化证书管理,并支持统一的安全策略。
配置Nginx监听HTTPS并启用SSL终止
需为Nginx配置监听443端口、加载证书和私钥,并开启SSL模块。关键项包括:
- listen 443 ssl:启用HTTPS监听
- ssl_certificate 和 ssl_certificate_key:指定公钥证书与私钥路径(如/etc/nginx/ssl/example.com.crt和/etc/nginx/ssl/example.com.key)
- ssl_protocols 和 ssl_ciphers:推荐使用TLSv1.2+,禁用不安全协议(如SSLv3、TLSv1.0)
将解密后的请求转发至后端HTTP服务
SSL终止后,Nginx以明文HTTP向后端服务器(如应用服务器)转发请求。需注意:
- 使用
proxy_pass http://backend;(非https),确保后端无需处理TLS - 添加
proxy_set_header X-Forwarded-Proto https;,让后端识别原始协议 - 建议设置
proxy_set_header X-Real-IP $remote_addr;和X-Forwarded-For,保留客户端真实IP
可选:强制HTTPS重定向与HSTS增强安全
提升安全性可补充两项配置:
- 在80端口server块中添加
return 301 https://$host$request_uri;,强制跳转HTTPS - 在HTTPS server块中加入
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;,启用HSTS
验证与调试要点
部署后需确认:
- 运行
nginx -t检查语法,再systemctl reload nginx生效 - 用
openssl s_client -connect example.com:443 -servername example.com验证证书链是否完整 - 检查后端日志中
X-Forwarded-Proto是否为https,确认协议头传递正确 - 浏览器访问时锁图标正常、无证书警告,且响应头含
Strict-Transport-Security










