HTTPS生产环境上线前需完成50项SSL配置检查,涵盖证书有效性与匹配性、服务端TLS协议与加密套件、部署路径与权限、全链路HTTPS一致性、可观测性验证及合规审计等关键环节,缺一不可。

HTTPS 生产环境上线前,SSL 配置不是“装上证书就完事”。50 项看似琐碎的检查,实则是防止中间人攻击、证书失效、兼容性崩塌、信任链断裂的关键防线。真正影响业务稳定与用户信任的,往往藏在第37项或第42项里。
证书本身:有效性、匹配性、完整性
证书是 HTTPS 的起点,也是最容易出错的第一环。
- 确保证书未过期(检查 Not Before 和 Not After 时间,注意时区和系统时间是否同步)
- 检查域名匹配:主域名、www 子域、API 域名、管理后台域名是否全部包含在 SAN(Subject Alternative Name)列表中
- 通配符证书
*.example.com不覆盖example.com或a.b.example.com,需单独添加或使用多级通配符(如*.b.example.com) - 确认证书链完整:服务端必须返回完整的证书链(含中间 CA 证书),不能只传叶证书
- 验证根证书是否被主流客户端信任(Chrome、Firefox、Safari、Android 10+、iOS 14+ 默认信任列表)
- 避免使用自签名证书或私有 CA 证书——除非明确控制所有客户端并已预埋根证书
- 检查私钥是否为 RSA 2048bit 或 ECDSA P-256 以上强度,禁用 SHA-1 签名算法
- 确认私钥未加密(或已提供正确解密密码),且权限严格(Linux 下应为
600,属主为运行服务的用户)
服务端配置:协议、加密套件、TLS 行为
再好的证书,配上老旧协议或弱加密套件,等于裸奔。
- 禁用 TLS 1.0 和 TLS 1.1(2026 年起主流浏览器已默认不支持)
- 强制启用 TLS 1.2 及 TLS 1.3,优先协商 TLS 1.3
- 禁用不安全加密套件:如
RC4、3DES、MD5、NULL、EXPORT类套件 - 启用前向保密(PFS)套件,例如
TLS_AES_128_GCM_SHA256(TLS 1.3)或ECDHE-ECDSA-AES128-GCM-SHA256(TLS 1.2) - 配置合理的会话复用机制(Session Tickets 或 Session IDs),但 Ticket 密钥需定期轮换
- 关闭不必要扩展:如
Server Name Indication (SNI)不可关(现代 HTTPS 必需),但ALPN应仅保留h2和http/1.1 - 设置合理的 OCSP 装订(OCSP Stapling):开启并确保响应有效、签名未过期、CA 支持
- 禁用 SSL/TLS 重协商(Renegotiation)或仅允许安全重协商
部署与集成:路径、权限、全链路一致性
证书文件放在哪、谁读得懂、怎么加载,直接影响服务能否启动、是否生效。
- 确认证书文件路径在配置中拼写准确(区分大小写、无隐藏空格、无 Windows 换行符)
- 检查 Web 服务器(Nginx/Apache/IIS/Jetty)对证书和私钥的读取权限(非 root 进程应能读取)
- 若使用容器化部署,确认证书文件已正确挂载或打包进镜像,且路径与配置一致
- 负载均衡器(如 ALB、SLB、ESA)与后端源站是否都启用了 HTTPS?若仅前端 HTTPS、后端 HTTP,属于“半程加密”,敏感信息仍可能泄露
- 启用全链路 HTTPS:客户端→边缘节点(ESA/CDN)→负载均衡器(ALB)→应用网关(MSE Ingress)→后端服务,每跳都需独立证书或透传配置
- 若使用双向认证(mTLS),确认客户端证书已分发、格式正确(PEM/PFX)、有效期足够,并在服务端开启 client certificate verify
- 检查证书自动续签机制是否就位(Cert-Manager、acme.sh、阿里云自动续签等),且续签后服务能热重载配置
- 确认 DNS 解析已生效,且 CAA 记录允许当前 CA 颁发证书(如
issue "letsencrypt.org")
可观测性与合规:验证、日志、审计准备
上线不是终点,而是监控和审计的开始。
- 使用
openssl s_client -connect example.com:443 -servername example.com手动验证握手、证书链、协议版本 - 通过 SSL Labs Test 获取 A+ 评级(重点关注协议支持、密钥交换、认证、性能四维度)
- 确认浏览器访问时地址栏显示锁形图标,无“连接不安全”或证书警告
- 检查 Web 服务器错误日志中是否有
SSL_read、handshake failure、no shared cipher等报错 - 启用 TLS 握手日志(如 Nginx 的
ssl_preread或 ALB 访问日志中的 TLS 字段),便于问题回溯 - 记录证书指纹(SHA-256)、颁发者、序列号、公钥哈希,纳入 CMDB 或配置管理系统
- 确认符合行业要求:PCI DSS 要求禁用 TLS 1.0;等保三级要求使用国密 SM2/SM4(如需);GDPR 要求传输加密
- 准备好应急回滚方案:如证书异常,能否快速切换备用证书或临时降级至 HTTP(仅限内部管理接口)


















