笔者之前写了个 python 脚本,负责用 imap 协议从网易邮箱中拉取邮件。2023-07-21 及以前能正常运行,之后这个脚本一执行就报错:
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)
本以为是 python 库版本/python 版本的问题,升级 python 后还是报这个错。用 openssl 验证后发现是服务器证书有问题:
$ openssl s_client -connect imap.163.com:993
...
Start Time: 1690210134
Timeout : 7200 (sec)
Verify return code: 21 (unable to verify the first certificate)
Extended master secret: no
---
* OK IMAP4 ready
昨天在网易邮箱的网页上提了反馈,不过目前还没有回应。
1
julyclyde 2023-07-25 20:05:10 +08:00
% openssl s_client -connect imap.163.com:993
CONNECTED(00000005) depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root CA verify return:1 depth=1 C = US, O = DigiCert Inc, CN = GeoTrust RSA CN CA G2 verify return:1 depth=0 C = CN, ST = zhejiang, L = hangzhou, O = "NetEase (Hangzhou) Network Co., Ltd", CN = *.163.com verify return:1 write W BLOCK 只是你的系统该更新了而已 |
3
julyclyde 2023-07-25 22:57:35 +08:00
@marquina 不过从你附图的这三个证书来看,也没过期啊
猜测和这个事有关 https://knowledge.digicert.com/generalinformation/digicert-root-and-intermediate-ca-certificate-updates-2023.html 再猜测:服务器上出示了完整证书链,但是 root 和中间层都是以前旧的 如果只出示服务器自己的证书,而 root 和中间层让客户端自己去脑补,就可以享受到更新版本带来的新证书链了 |