TLS 配置的六个决定:协议版本、套件、证书与 HSTS

密码学 · 2 分钟阅读· 377 次阅读

很多站点开了 HTTPS,却仍在支持 TLS 1.0 与 RC4 套件,等于给降级攻击留门。

配置的目标是「只保留现代客户端能用的最强组合」。

先说结论

只开 TLS 1.2/1.3,用 AEAD 套件,证书链完整并自动续期。

  • 禁用 TLS 1.0/1.1 与弱套件
  • 开启 OCSP Stapling 减少握手延迟
  • HSTS 在确认全站 HTTPS 后开启
  • 证书到期监控,别等过期

漏洞是怎么产生的

TLS 的握手协商会让双方选择「都支持的最强组合」,所以服务端必须主动裁掉弱项。

证书链不完整是最常见的「浏览器报错但 curl 正常」的原因。

修复与验证

修复不是改一行代码,而是四件事一起做:

  • ssl_protocols 只留 TLSv1.2 TLSv1.3
  • 套件限制为 AEAD(ECDHE + AES-GCM/ChaCha20)
  • 配置完整证书链(含中间证书)
  • 开启 OCSP Stapling 与 session 复用
  • 加 HSTS 与到期提醒

攻击面与检测点

按影响面排序,先修影响最大的:

项 推荐 说明
协议 TLS1.2 + TLS1.3 禁 1.0/1.1
套件 ECDHE-AEAD 前向安全
证书 完整链 + 自动续期 acme.sh/certbot
HSTS max-age 1 年 先确认全站 HTTPS

TLS 配置的六个决定

几个容易踩的坑

下面这些是最常见的错误做法:

  • 只配域名证书不配中间证书:部分客户端失败
  • HSTS 开太早:HTTP 站点直接不可访问
  • 证书自动续期没配 reload:续了但没生效
  • 为了兼容老客户端保留 TLS1.0

写在最后

TLS 配置的验收标准:用在线检测工具跑一遍,只留 A/A+ 的结果。

安全不是一次加固,是持续的假设:假设输入不可信、假设边界会破、假设有人会看错。

评论 (3)

半
半箱油

修复清单比漏洞描述有用多了,很多文章只讲怎么打不讲怎么防。

白
白帽小林

白名单那条永远是最有效的,正则黑名单迟早绕过。

运
运维老张

建议再补一条:把这类检查加到 CI 里,靠人记必然漏。

发表评论

验证码

提交后需站长审核,通过后才会显示。