Let's Encrypt 颁发的证书所包含的 CRL 链接完全被墙,可能导致所有用 LE 证书的网站在国内无法打开或者弹出警告。

14 天前
 villivateur

今天用 curl 访问我的网站,发现报错:

$ curl -vv https://www.example.com/generate_204
08:43:01.876922 [0-0] * Host www.vvzero.com:443 was resolved.
08:43:01.880422 [0-0] * IPv6: 2408:1:1013:e900::1
08:43:01.883004 [0-0] * IPv4: 1.116.4.74
08:43:01.885021 [0-0] * [HTTPS-CONNECT] added
08:43:01.887128 [0-0] * [HTTPS-CONNECT] connect, init
08:43:01.889315 [0-0] * [HTTPS-CONNECT] connect, check h21
08:43:01.891506 [0-0] *   Trying [2408:1:1013:e900::1]:443...
08:43:01.894156 [0-0] * [HTTPS-CONNECT] connect -> 0, done=0
08:43:01.896145 [0-0] * [HTTPS-CONNECT] adjust_pollset -> 1 socks
08:43:01.898445 [0-0] * [HTTPS-CONNECT] connect, check h21
08:43:01.901163 [0-0] * [HTTPS-CONNECT] connect -> 0, done=0
08:43:01.903526 [0-0] * [HTTPS-CONNECT] adjust_pollset -> 1 socks
08:43:01.907055 [0-0] * [HTTPS-CONNECT] connect, check h21
08:43:01.910135 [0-0] * schannel: disabled automatic use of client certificate
08:43:01.917094 [0-0] * [HTTPS-CONNECT] connect -> 0, done=0
08:43:01.919009 [0-0] * [HTTPS-CONNECT] adjust_pollset -> 1 socks
08:43:01.924728 [0-0] * [HTTPS-CONNECT] connect, check h21
08:43:01.933717 [0-0] * schannel: next InitializeSecurityContext failed: CRYPT_E_REVOCATION_OFFLINE (0x80092013) - The revocation function was unable to check revocation because the revocation server was offline.
08:43:01.939440 [0-0] * [HTTPS-CONNECT] connect, all failed
08:43:01.941833 [0-0] * [HTTPS-CONNECT] connect -> 35, done=0
08:43:01.944171 [0-0] * closing connection #0
08:43:01.947391 [0-0] * [HTTPS-CONNECT] close
08:43:01.949490 [0-0] * [SETUP] close
08:43:01.952020 [0-0] * [SETUP] destroy
08:43:01.954525 [0-0] * [HTTPS-CONNECT] destroy
curl: (35) schannel: next InitializeSecurityContext failed: CRYPT_E_REVOCATION_OFFLINE (0x80092013) - The revocation function was unable to check revocation because the revocation server was offline.

然后尝试访问证书里提供的 CRL 链接:

$ curl -v http://e5.c.lencr.org/80.crl
* Host e5.c.lencr.org:80 was resolved.
* IPv6: 2606:4700::6812:15d5, 2606:4700::6812:14d5
* IPv4: 104.18.20.213, 104.18.21.213
*   Trying [2606:4700::6812:15d5]:80...
* Connected to e5.c.lencr.org (2606:4700::6812:15d5) port 80
* using HTTP/1.x
> GET /80.crl HTTP/1.1
> Host: e5.c.lencr.org
> User-Agent: curl/8.10.1
> Accept: */*
>
* Request completely sent off
* Recv failure: Connection was reset
* closing connection #0
curl: (56) Recv failure: Connection was reset

itdog 查询显示这个域名已经完全被墙,方法是 TCP RST 。

部分浏览器可能不会检查 CRL ,那就没问题。但可能更多的正规浏览器或者 APP 会检查,就会导致无法访问或者弹出警告。

小站站长可能会痛苦了,很多人可能没法上你的网站了。

7641 次点击
所在节点    信息安全
52 条回复
fuzzsh
14 天前
@salmon5 卧槽,当年提出 OCSP 来替代 CRL ,这就光荣退役了。。还是朴素无华的技术活得更久
Virace
14 天前
@MiKing233 确实,早就这样了,切换到 zerossl 暂时还能用。 问题就是这个 zero 好像不支持有些域名,比如说.cc, 申请一直失败,这就很难受
shihao9618
14 天前
公用名 (CN) E6
组织 (O) Let's Encrypt
好像还可以用
vibbow
14 天前
还是得 ocsp
villivateur
14 天前
@vibbow OCSP 也会被墙或者劣化。CRL 至少是周期性去获取的,OCSP 每次打开网站都会卡一下。
bollld607
14 天前
南方某省电信,第一下能上,服务器响应 200 ok:
curl -v http://e5.c.lencr.org/80.crl
* Host e5.c.lencr.org:80 was resolved.
* IPv6: 2606:4700::6812:15d5, 2606:4700::6812:14d5
* IPv4: 104.18.21.213, 104.18.20.213
* Trying [2606:4700::6812:15d5]:80...
* Trying 104.18.21.213:80...
* Connected to e5.c.lencr.org (2606:4700::6812:15d5) port 80
* using HTTP/1.x
> GET /80.crl HTTP/1.1
> Host: e5.c.lencr.org
> User-Agent: curl/8.15.0
> Accept: */*
>
* Request completely sent off
< HTTP/1.1 200 OK
< Date: Wed, 20 Aug 2025 08:25:08 GMT

再试一下就被 reset 了:
curl -v http://e5.c.lencr.org/80.crl
* Host e5.c.lencr.org:80 was resolved.
* IPv6: 2606:4700::6812:15d5, 2606:4700::6812:14d5
* IPv4: 104.18.21.213, 104.18.20.213
* Trying [2606:4700::6812:15d5]:80...
* Trying 104.18.21.213:80...
* Connected to e5.c.lencr.org (104.18.21.213) port 80
* using HTTP/1.x
> GET /80.crl HTTP/1.1
> Host: e5.c.lencr.org
> User-Agent: curl/8.15.0
> Accept: */*
>
* Request completely sent off
* Recv failure: Connection reset by peer
* closing connection #0
curl: (56) Recv failure: Connection reset by peer
salmon5
14 天前
谁能总结下:哪些浏览器、组件会验证 Let's Encrypt 的 CRL ,从而会被影响?那就功德无量了
cheng6563
14 天前
@salmon5 应该没一个有。除非自己配置强制校验的策略。
realpg
14 天前
用啥 le 的 acme 啊
直接用 google 的 就是签发服务器要翻墙
使用验证和 crl 都是墙内
dianso
14 天前
完全不会,你是一点也不懂啊。
cccer
14 天前
至少 Chrome 不会去下载和校验 CRL, 谷歌自己维护了一个压缩版的 CRLSet 。
w7938940
14 天前
流放之路国际服前段时间更新提示证书错误就是这个问题
Fqy
14 天前
这个网站还能上么
https://www.huogua.net
chinni
14 天前
用 sniproxy 代理下 google 签发的 域名,然后国内要签发证书的机器上 写一条 host ,就可以基本无缝使用 google 证书了。最简单的办法了,可以不管 le 的 奇怪问题和 zerossl 的不定时抽风
wzw
13 天前
@chinni #34 google 证书 好用很多?
FengkuiChan
13 天前
今天凌晨大概坏了半小时,然后又好了
shijingshijing
13 天前
我记得 iPhone 点下图标启动 App 之前也会通过 OCSP 对 App 证书进行校验,难道苹果也抛弃了?
```
iPhone 上点击一个 App 时,系统会通过 OCSP 协议实时查询该 App 签名证书的状态,确保 App 的合法性和安全性。这一过程包括发送 OCSP 请求、接收并验证响应,最终决定是否允许 App 启动,从而保护用户免受潜在的安全威胁。
```
DaDapeng
13 天前
请问微信内置浏览器会受影响吗?
@salmon5
Zy143L
13 天前
@vfs 西安(移动) 已经寄了
doruison
13 天前
@billzhuang ocsp 已经被 le 废弃了,性能开销大

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1153589

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX