ssl终结由负载均衡器统一处理https解密,需合规pem证书链与无密码私钥,配置443端口tls 1.2+,后端改用http并读取x-forwarded-*头,建议自动续期、权限管控、hsts及强加密套件。

负载均衡接入 SSL 证书并实现统一终结,核心是把 HTTPS 解密工作从后端应用服务器剥离,交由负载均衡器集中处理。这样既减轻后端压力,又便于证书管理、安全策略统一和性能优化。
准备合规的证书文件
负载均衡器要求证书必须满足格式与内容规范:
- 证书文件(如 cert.pem)需为 PEM 格式,包含完整的证书链(域名证书 + 中间 CA 证书),不能只放单个证书
- 私钥文件(如 privkey.pem)也必须是 PEM 编码,且不能受密码保护——带 passphrase 的密钥多数负载均衡器(包括 Nginx、Angie、阿里云 ALB、Azure AKS Ingress)会直接拒绝加载
- 证书绑定的域名(Subject Alternative Name)必须与客户端实际访问的域名完全一致,否则浏览器或客户端会报“证书不匹配”错误
在负载均衡器上启用 SSL 终结
以主流方案为例,配置逻辑高度一致:
-
Nginx / Angie:在
server块中监听 443 端口,指定证书路径,并强制开启 TLS 1.2+(禁用老旧协议)
server {
listen 443 ssl;
server_name app.example.com;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:...;
# 后端一律走 HTTP(明文)
location / { proxy_pass http://backend; }
} - 云厂商 SLB(如阿里云 ALB、AWS ALB、Azure Front Door):在控制台上传证书 PEM 内容(非文件),绑定监听端口 443,设置转发规则指向后端 HTTP 服务(如 80 或 8080 端口),无需在后端服务器再配 HTTPS
确保后端服务适配 HTTP 明文通信
SSL 终结后,负载均衡器与后端之间是普通 HTTP 流量,需注意:
- 后端 Web 服务(如 Node.js、Python Flask、Java Spring Boot)只需监听 HTTP 端口,不再需要配置证书或启用 HTTPS
- 应用内获取客户端真实 IP 应读取 X-Forwarded-For 头,而非直接取 socket 远端地址
- 重定向逻辑(如 HTTP 自动跳 HTTPS)应关闭,避免循环跳转;所有跳转均由负载均衡器统一控制
- 若后端需识别是否经 HTTPS 访问,检查 X-Forwarded-Proto: https 头即可
补充建议:提升安全性与可维护性
生产环境不应止步于“能用”,还需关注长期运维质量:
- 使用 ACME 客户端(如 certbot 或 acme.sh)配合 DNS 挑战自动续期,避免证书过期导致服务中断
- 将证书私钥权限设为
600,所属用户限定为运行负载均衡进程的账号(如 nginx 用户) - 在负载均衡器上启用 HSTS 头(
Strict-Transport-Security),强制浏览器后续请求走 HTTPS - 定期审计加密套件,禁用弱算法(如 SHA1、RC4、TLS 1.0/1.1),优先选用 ECDHE + AES-GCM 组合











