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

> SC-033 在 2020 年用基于 RFC 8737（ACME tls-alpn-01）的方法 3.2.2.4.20，取代了定义含糊的 TLS 验证方法 3.2.2.4.10。

Source: https://ssl.sh/zh/ballots/sc-033/
Last updated: 2026-11-10

SC-033 让 ACME 的 [TLS-ALPN-01](https://ssl.sh/zh/glossary/tls-alpn-01/) 验证有了正式依据。2020 年它用遵循 RFC 8737 的新方法 3.2.2.4.20，取代了定义含糊的验证方法 3.2.2.4.10：CA 连接你服务器的 443 端口，检查在 `acme-tls/1` 这个 [ALPN](https://ssl.sh/zh/glossary/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](https://ssl.sh/zh/glossary/dns-01/)。原理见 [ACME 协议详解](https://ssl.sh/zh/learn/acme-protocol/)。


| 字段 | 值 |
|---|---|
| 投票 | SC-033 |
| 状态 | 通过 |
| 通过 | 2020-08-14 |
| 生效 | 2020-09-22 |
| BR 版本 | 1.7.2 |
| 官方页面 | https://cabforum.org/2020/08/14/ballot-sc033-tls-using-alpn-method/ |
