CA/B 论坛投票 · SC-033

SC-033:TLS-ALPN 验证取代旧的方法 10

最后核实

详细信息

投票
SC-033
标题
TLS Using ALPN Method
状态
通过
日期
2020-08-14
通过
生效
BR 版本
1.7.2
官方页面
cabforum.org

关键日期

  1. 方法 3.2.2.4.20“TLS Using ALPN”可用;方法 10 停用

SC-033 让 ACME 的 TLS-ALPN-01 验证有了正式依据。2020 年它用遵循 RFC 8737 的新方法 3.2.2.4.20,取代了定义含糊的验证方法 3.2.2.4.10:CA 连接你服务器的 443 端口,检查在 acme-tls/1 这个 ALPN 协议下提供的特殊证书。

改了什么

SC-033 删除了方法 10,新增方法 20“TLS Using ALPN”。方法 10“TLS Using a Random Number”是 ACME TLS-SNI-01 验证的实现基础。2018 年 1 月该验证被披露存在漏洞:在共享主机上,一个用户可以拿到另一个用户域名的证书。部分浏览器随即禁止在未加缓解措施时使用方法 10,IETF 则把基于 ALPN 的修复方案标准化为 RFC 8737。投票还限定新方法只验证实际验证的那个完整域名:其他子域名要重新验证,也不允许通配符,因为投票认为验证整个子域名更适合用基于 DNS 的方法。提案来自 Mozilla,Let's Encrypt 和 DigiCert 附议。

生效日期

基线要求修改于 2020-09-22 生效,方法 10 没有过渡期。

影响谁

使用支持 tls-alpn-01 的 ACME 客户端的用户,比如自己在 443 端口响应验证的服务器和反向代理。用 HTTP-01 和 DNS-01 的用户不受影响。国内不少服务器因未备案等原因无法开放 80 端口,tls-alpn-01 是只开 443 时的一个选择(acme.sh 支持 --alpn 模式)。

该怎么做

80 端口关闭而 443 可访问、且软件支持时,可以用 tls-alpn-01。要申请通配符证书,请用 DNS-01。原理见 ACME 协议详解。

资料来源

  1. Ballot SC033: TLS Using ALPN Method(cabforum.org)
  2. RFC 8737: ACME TLS Application-Layer Protocol Negotiation (ALPN) Challenge Extension
  3. TLS 基线要求 §3.2.2.4.20(GitHub cabforum/servercert)