带SubjectAlternativeName(SAN)证书在Chrome中出现ERR_CONNECTION_RESET错误
这种情况我之前排查过好几次,Chrome对HTTPS连接的校验逻辑确实比Firefox、Safari更严格,尤其是最新版本。结合你说的现象——受信任CA签发的带SAN字段的证书导致Chrome连接重置,其他浏览器正常,自签名SAN证书反而无HTTPS错误——下面是几个最值得优先排查的方向:
证书链完整性问题:Chrome要求服务器必须返回完整的证书链(叶证书 → 中间CA证书 → 根CA证书),而Firefox和Safari会自动尝试补全缺失的中间证书。你可以用命令行工具验证:
openssl s_client -connect your-domain:443查看输出里的
Certificate chain部分,如果只有叶证书,没有中间CA的条目,就把中间CA证书和叶证书合并成一个.pem文件重新部署到服务器。TLS版本与加密套件兼容性:最新版Chrome已经逐步淘汰了旧的TLS版本和弱加密套件(比如TLS 1.0/1.1,或者基于SHA-1的套件)。检查你的服务器配置,确保只启用了TLS 1.2及以上版本,并且使用Chrome支持的现代加密套件(比如
TLS_AES_256_GCM_SHA384、TLS_CHACHA20_POLY1305_SHA256这类)。可以用以下命令查看服务器当前支持的套件:nmap --script ssl-enum-ciphers -p 443 your-domain如果发现有过时的套件,调整服务器的TLS配置(比如Nginx的
ssl_protocols和ssl_ciphers指令)后重启服务。OCSP Stapling配置异常:Chrome对OCSP Stapling的有效性校验非常严格,如果服务器配置了该功能但返回的OCSP响应过期、签名无效,就会直接重置连接。你可以先临时关闭OCSP Stapling测试是否恢复正常,或者用命令验证OCSP状态:
openssl s_client -connect your-domain:443 -status查看输出中的
OCSP Response部分,确认响应是有效的。服务器连接复用或防火墙拦截:Chrome默认启用HTTP/2多路复用,这种连接模式可能触发服务器的连接数限制,或者被防火墙、WAF当成异常流量拦截。可以尝试临时禁用服务器的HTTP/2支持,或者检查防火墙/安全组规则,看是否有针对Chrome用户代理的拦截策略。
本地Chrome缓存干扰:虽然概率较低,但也可以试试用Chrome的无痕模式打开页面,或者清除SSL缓存(路径:设置 → 隐私和安全 → 安全 → 管理证书 → 清除SSL缓存),排除本地缓存的旧证书或异常配置影响。
需要注意的是,你提到自签名SAN证书可以正常访问,说明SAN字段的配置是没有问题的,问题核心应该是受信任CA证书的部署细节,或者服务器TLS配置与Chrome的兼容性差异。
内容的提问来源于stack exchange,提问作者Avineshwar

