GCP新部署自管理SSL证书报NET::ERR_CERT_REVOKED故障
GCP自管理SSL证书报
NET::ERR_CERT_REVOKED排查方案 按以下优先级逐一排查,覆盖绝大多数同类问题场景:
1. 优先检查GCP侧证书挂载配置
大部分同类报错都是新证书创建后未正确绑定到流量入口导致的,实际访问时仍然返回旧的已吊销/过期证书:
- 先查询全局HTTPS目标代理列表,找到对应负载均衡的代理资源:
gcloud compute target-https-proxies list --global
- 用代理名称替换命令中的占位符,查询代理当前绑定的SSL证书:
gcloud compute target-https-proxies describe <你的目标HTTPS代理名称> --global
检查返回结果中sslCertificates字段的资源路径,确认关联的是你新创建的eris-sypro证书。如果字段里还保留旧证书资源,执行更新命令替换绑定:
gcloud compute target-https-proxies update <你的目标HTTPS代理名称> --ssl-certificates=eris-sypro --global
- 如果配置了多证书SNI、证书池,确认
syproltd.co.uk域名匹配到的证书资源为新上传的自管理证书,不要仅以证书列表中存在新证书判定配置生效。 - 配置更新后等待5-10分钟待GCP全球边缘节点同步完成再测试,全局负载均衡的配置传播存在固定延迟,刚修改完立即测试大概率命中旧节点缓存。
2. 验证实际返回的证书状态
确认流量入口配置正确后,验证访问站点时实际拿到的证书属性:
- 本地执行openssl命令拉取站点实时返回的证书,排除前置代理、缓存返回旧证书的问题:
openssl s_client -connect syproltd.co.uk:443 -servername syproltd.co.uk
核对返回证书的有效期、签发方,确认和你上传到GCP的新证书一致。如果返回的是旧证书,检查是否有第三方CDN、DNS代理配置在GCP负载均衡之前,这类前置资源的证书需要单独更新。
- 验证证书本身的吊销状态:把拉取到的站点证书保存为
cert.pem,先查询证书对应的OCSP验证地址,再做状态校验:
# 提取OCSP验证地址 openssl x509 -in cert.pem -noout -ocsp_uri # 执行OCSP查询,<OCSP地址>替换为上一步返回的结果,<中间证书路径>替换为你证书链对应的中间CA证书文件路径 openssl ocsp -issuer <中间证书路径>.pem -cert cert.pem -text -url <OCSP地址>
如果返回结果显示证书已吊销,需要联系证书签发CA确认吊销原因,重新申请证书后再上传替换。
- 验证上传到GCP的证书完整性:自管理证书上传时必须包含完整证书链(叶子服务器证书+所有中间CA证书,按顺序拼接),仅上传叶子证书会导致证书链校验失败,触发浏览器安全报错。同时验证私钥和证书匹配:
# 提取证书MD5 openssl x509 -noout -modulus -in <上传的证书文件>.pem | openssl md5 # 提取私钥MD5 openssl rsa -noout -modulus -in <上传的私钥文件>.key | openssl md5
两个命令返回的MD5值完全一致才代表私钥和证书匹配。
3. 排除缓存类影响
- 如果确认证书本身未吊销、GCP配置正确,清空浏览器SSL缓存:Chrome可进入
设置-隐私和安全-安全-管理设备证书,选择清除SSL状态后重启浏览器测试,也可以直接用无痕模式访问排除本地证书缓存影响。 - 如果开启了Cloud CDN、Cloud Armor边缘服务,手动清空对应缓存规则,避免边缘节点缓存旧的TLS握手信息。
排查时不要跳过配置绑定检查直接怀疑证书本身问题,90%以上的新证书替换后报错都是因为目标HTTPS代理未更新绑定导致的。
内容的提问来源于stack exchange,提问作者Simon Napper
相关产品推荐
相关产品推荐

