HTTPS 监听是什么
HTTPS 监听在七层入口完成 TLS 握手:需要先准备服务器证书(证书文件加私钥,建议包含完整中间证书链),在监听中引用后,客户端到负载均衡这一段就是加密的。后端可以继续用 HTTP(通常叫 HTTPS 卸载)或改用 HTTPS(加密到后端)。证书更新时必须回到监听里替换引用,旧引用不会自动跟随。
基本信息
| 前置条件 | 服务器证书 + 私钥,建议包含完整中间证书链 |
|---|---|
| 常见模式 | HTTPS 卸载(后端 HTTP)或重新加密(后端 HTTPS) |
| 证书来源 | 云证书服务申请(含免费 DV 证书)或上传自有证书 |
| 协议版本 | 可指定允许的 TLS 版本与加密套件,建议关闭已废弃的早期版本 |
| 易忘项 | 续期后要在监听器里替换证书引用,否则线上仍在用旧证书 |
| 端口约定 | HTTPS 默认 443,HTTP 默认 80;两者通常成对配置以便跳转 |
典型使用场景
- 对外提供 HTTPS 服务并集中管理证书,避免每台后端都装一份证书
- 证书快到期时统一续期与替换,减少逐台服务器操作带来的遗漏
- 多域名共用入口:同一监听下为不同域名绑定不同证书
- 需要满足合规要求时开启更严格的最低 TLS 版本
- 配合 HTTP 监听做强制跳转,让用户始终走加密通道
检查线上证书与协议
检查线上证书与协议
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null \
| openssl x509 -noout -dates -subject -issuer # 查有效期与签发者
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>&1 \
| grep -i 'protocol\|cipher' # 查看协商到的协议与套件
curl -sI https://example.com/ | head -5 # 确认服务可达常见故障与判断
| 现象 | 常见原因 |
|---|---|
| 浏览器提示证书不受信任 | 证书链不完整或域名与证书不匹配 |
| App 端握手失败、浏览器正常 | 缺中间证书或客户端不支持所选 TLS 版本 |
| 续期后仍显示旧到期时间 | 监听未替换证书引用 |
| HTTP 能开、HTTPS 打不开 | 监听未创建或 443 未在安全组放行 |
缺中间证书链的证书在部分客户端(旧版 Android、部分 Java 运行环境)会直接握手失败,上传时优先选择包含完整链的文件。
证书到期属于可预见的故障,建议在到期前 30 天设置提醒或告警,并在变更窗口提前替换,避免在到期当天被动处理。
证书生命周期管理
- 申请时覆盖全部实际访问域名,避免多张证书混用造成匹配错误
- 上传时使用含完整中间链的 PEM 文件,私钥单独保存并限制权限
- 到期前 30 天完成续期与监听替换,不用等到到期当天
- 替换后立即用命令线上复核,确认新证书已生效
- 多域名入口逐域名验证匹配情况,不要只验证主域名
更换证书后的线上复核
更换证书后的线上复核
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null \
| openssl x509 -noout -dates -subject # 确认到期时间与域名已更新
curl -sI https://example.com/ | head -3 # 确认站点访问正常
# 同时观察监控中的 5xx 与握手失败比例是否出现变化证书私钥属于敏感材料,仅在必要范围内流转;上传到云证书服务后,本地副本也要限制读取权限并避免进入代码仓库。
监听安全选项
| 项目 | 建议 | 原因 |
|---|---|---|
| 最低 TLS 版本 | 按客户端支持情况选较新版本 | 淘汰已知不安全的早期版本 |
| 加密套件 | 使用产品提供的推荐套件 | 兼容性与安全性更均衡 |
| HTTP/2 | 在入口开启 | 减少握手开销并支持多路复用 |
| 证书链 | 包含完整中间证书 | 避免部分客户端握手失败 |