浏览器
NET::ERR_CERT_REVOKED:证书被吊销是怎么回事,怎么处理
NET::ERR_CERT_REVOKEDNET::ERR_CERT_REVOKED 的意思是:证书在到期之前已被 CA 作废,而且浏览器已经知道了。 这是网站这边的问题,访客没有安全的办法绕过,Chrome 也故意不提供“继续前往”。
先判断是网站的问题还是你电脑的问题
吊销是证书本身的状态,所以这个错误基本都归网站。用 SSL 检测 确认:
curl ssl.sh/example.com
访客这边唯一的例外是 HTTPS 被拦截:杀毒软件或公司代理在重新签发证书,而它自己用的证书或中间证书被吊销了,这时所有被拦截的网站都会报这个错。在证书查看器里看“颁发者”,是正规 CA 还是某个安全产品。
原因
证书被吊销有 5 种情况,前 4 种都要由站长重新签发证书,第 5 种要找 IT 升级拦截产品。
1. 站长自己吊销了旧证书,但还在用
换服务器或换私钥后重新签了证书,旧证书吊销了,可某台服务器、某个 CDN 节点或负载均衡上还挂着它。对比浏览器里看到的序列号和你装的证书:
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null \
| openssl x509 -noout -serial -dates -issuer
2. 私钥泄露
私钥被传到了公开的代码仓库、服务器被入侵,持有人或 CA 会吊销证书。必须生成新私钥,泄露的那把不能再用。
3. CA 事故或错误签发
按照 CA/浏览器论坛的基线要求,CA 发现违规签发的证书必须在 24 小时或 5 天内吊销。历史上多家 CA 都因为验证流程的漏洞做过批量吊销,通常会提前给账户联系邮箱发通知,所以要留一个有人看的邮箱。
4. 中间证书被吊销
中间 CA 证书本身被吊销时,它下面的所有证书都会失败。证书和证书链文件都要换。
5. 拦截类产品用了被吊销的证书
少见,但老旧的安全网关有可能用的是已吊销的中间证书。升级产品或找 IT 处理。
在各浏览器/系统上的样子
Chrome、Firefox 和 Safari 都会拦下已吊销的证书,curl 和 OpenSSL 默认不检查吊销。
| 浏览器 | 显示内容 |
|---|---|
| Chrome / Edge / 360 极速模式 | “您的连接不是私密连接”,代码 NET::ERR_CERT_REVOKED,没有继续选项 |
| Firefox | “建立安全连接失败”,代码 SEC_ERROR_REVOKED_CERTIFICATE |
| Safari | “此连接非私人连接”,证书详情显示已被吊销 |
| curl / OpenSSL | 默认不检查吊销,可能照样能连上 |
站长怎么修
唯一的修法是重新签发证书,并替换所有部署了旧证书的地方。
1. 搞清楚原因。 查看 CA 账户和邮箱里的吊销通知,吊销原因决定要不要换私钥。
2. 重新签发。 涉及私钥泄露时用新私钥:
openssl req -new -newkey rsa:2048 -nodes \
-keyout example.com.key -out example.com.csr -subj "/CN=example.com"
用 ACME 客户端也可以直接生成新私钥:certbot certonly --nginx -d example.com --force-renewal。在阿里云、腾讯云买的证书,到证书控制台里“重新签发”或申请新证书。
3. 所有地方都换掉。 源站、CDN、负载均衡、邮件服务器、各种设备各有一份。用 证书解析 查看每个入口发出的证书,确认序列号已经变了。宝塔面板里要把“证书夹”里的旧证书也删掉,防止被误部署。
4. 复查。 运行 curl ssl.sh/example.com,确认序列号和日期都是新证书的。原理见 OCSP 和 CRL。
常见问题
证书被吊销的网站还能继续访问吗?
不能,也不应该。证书被吊销可能意味着私钥已经被盗,别人可以冒充这个网站。等站长换上新证书再访问。
为什么同一个网站,一个浏览器说被吊销,另一个能打开?
各浏览器获取吊销信息的方式和时间不同:Chrome 用 CRLSet,Firefox 用 CRLite 和 OCSP,Safari 用苹果自己的机制。刚被吊销的证书,短时间内可能在一个浏览器里显示正常、在另一个里显示已吊销。
新证书已经签好了,旧证书能用到过期吗?
没被吊销的话可以。只要是你自己或 CA 吊销了的,必须立刻从所有服务器、CDN、负载均衡上撤下来,任何一个地方还在用就会报这个错。
需要换私钥吗?
吊销原因是私钥泄露的,必须换新私钥、重新生成 CSR。其他原因(比如 CA 自己的签发事故)规则上允许沿用私钥,但换一个新的更稳妥。