Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Let's Encrypt 默认签发的证书链中 DST Root CA X3 已于 2021 年 9 月 30 日过期 #372

Open
taoky opened this issue Oct 11, 2021 · 8 comments

Comments

@taoky
Copy link
Member

taoky commented Oct 11, 2021

Related: sjtug/mirror-requests#221

今年 9 月 30 日之后,Let's Encrypt 默认签发的证书链中 DST Root CA X3 过期,而旧的 Android 设备根证书库中不包含 ISRG Root X1。对于这个问题,Let's Encrypt 采取的兼容性方案是签发 DST Root CA X3 -> ISRG Root X1 -> Let's Encrypt R3 -> 用户证书 的证书链(见 https://letsencrypt.org/2020/12/21/extending-android-compatibility.html),而:

  • ISRG 在大部分比较新的系统的根证书库中,可以正常使用;
  • Android 会忽略根证书过期时间。

理论上这条证书链不会出现问题,但是旧版本的 OpenSSL、GnuTLS、LibreSSL 会在发现 DST 过期后,直接判断整条证书链无效。这会导致长时间未升级或已经 EOL 的 Linux 发行版用户,以及其他部分使用了与旧版本 TLS 相关库链接的程序的用户在以 HTTPS 访问镜像站时会出现证书过期的提示。

如果在申请证书时选择不含 DST 的 alternative chain,那么从目前已知的信息看,只会影响使用 Android < 7.1.1 的用户以 HTTPS 方式访问镜像站(需要设置忽略证书问题或者使用 HTTP 访问)。

希望能够在这里收集各用户对此问题的建议。

附:目前的解决方案可以参考 tuna/issues#1342 (comment)

@taoky
Copy link
Member Author

taoky commented Oct 11, 2021

相关的用户反馈:

  • alpine 用国内源,出现 https 证书问题 - V2EX
  • 2021/10/1 LUG 校内群聊中同学反馈 Ubuntu 20.04 提示证书错误无法升级。
  • macOS 10.14 (Mojave) homebrew 更新失败(curl, git 链接的 LibreSSL 版本问题。需要在 /etc/ssl/cert.pem 中手动删除 DST 根证书)

@iBug
Copy link
Member

iBug commented Oct 11, 2021

使用 acme.sh 选择新的证书链:

acme.sh <...> --preferred-chain "ISRG Root X1" <...>

Doc: https://github.com/acmesh-official/acme.sh/wiki/Preferred-Chain

@yangzhaofeng
Copy link
Member

另,如果用的certbot,可以同樣在參數中增加 --preferred-chain "ISRG Root X1"

或者在 /etc/letsencrypt/renewal/<domain>.confrenewalparams 下增加 preferred_chain = ISRG Root X1

@taoky
Copy link
Member Author

taoky commented Oct 11, 2021

SJTUG 已经部署切换证书链。

根据目前收集的情况,保留 DST 带来的「兼容性」好处远小于其带来的问题,因此我们计划在这两天更新。

@iBug
Copy link
Member

iBug commented Oct 11, 2021

mirrors 已重新签发并部署不含 DST Root CA X3 的证书链,<lug.ustc.edu.cn> 暂时保持不动。

@iBug iBug closed this as completed Oct 11, 2021
@skyzh
Copy link

skyzh commented Oct 12, 2021

proxy.* 似乎还没有换,这个有计划吗(

@taoky
Copy link
Member Author

taoky commented Oct 12, 2021

proxy.* 似乎还没有换,这个有计划吗(

现在 *.proxy.ustclug.org 和 LUG 除了 mirrors 以外的站点共用一张证书,可能会考虑把 proxy 单独拆开来,但是要改配置,所以还得等一段时间。

@iBug
Copy link
Member

iBug commented Oct 12, 2021

proxy 情况有点复杂,有 Unix 工具使用的代理(crates.io,launchpad,npm,docker 等),也有浏览器使用的代理(fonts,ajax 等)

@iBug iBug changed the title 在 mirrors 的 HTTPS 证书链中去除 DST Root CA X3 Let's Encrypt 默认签发的证书链中 DST Root CA X3 已于 2021 年 9 月 30 日过期 Oct 25, 2021
@iBug iBug pinned this issue Oct 25, 2021
@iBug iBug unpinned this issue Jun 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants