警告!你的 https 证书可能不被客户端信任
2020年4月4日的新闻:
https://www.landiannews.com/archives/72082.html
Let’s Encrypty免费证书用户请注意:你的证书可能已经无法签发/更新
这篇新闻提到,由于 ocsp.int-x3.letsencrypt.org
在国内被 DNS 劫持污染,导致无法签发新证书。
事实证明不止如此,对于已签发证书,客户端也会访问 OCSP 服务器来确定证书吊销状态,如果客户端无法访问 OCSP,部分浏览器或许没事(如 Chrome),但使用 Windows Schannel 的程序将无法握手,比如 Windows 自带的各种工具、curl、aria2 等。
对于这种不可抗力导致的问题,我无话可说,但也不能坐着等死,我们无法解决客户端的 DNS 劫持问题,但能开启服务端的 OCSP Stapling,让服务端获取 OCSP 信息并发给客户端,这样客户端就不用访问 OCSP 服务器了。
对于 nginx,步骤如下:
1. 通过某种手段找到 ocsp.int-x3.letsencrypt.org 域名的正确 IP(怎么找我不说),把它写入到 /etc/hosts 文件中,或者指定一个防污染 DNS 服务器。
2. 在 nginx 配置文件中加入以下内容:
ssl_stapling on; ssl_stapling_verify on;
或许还需要设置 ssl_trusted_certificate,但我测试发现不写也能用。
3. 重载 nginx 配置。
$ nginx -t $ nginx -s reload
由于 nginx 是被动检测,前几次连接可能并不会含有 OCSP 信息,等几秒就好了。
省略一万字脏话,送给那些死妈的相关人员。
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
近期评论