浏览器

NET::ERR_CERT_REVOKED:证书被吊销是怎么回事,怎么处理

作者: · 最后核实

报错信息NET::ERR_CERT_REVOKED

NET::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 自己的签发事故)规则上允许沿用私钥,但换一个新的更稳妥。

资料来源

  1. Chromium net_error_list.h
  2. RFC 5280 第 5 节:CRL
  3. RFC 6960: OCSP
  4. Mozilla Support: Error codes on secure websites