You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chromium报ERR_SSL_SERVER_CERT_BAD_FORMAT错误的技术求助

问题根源:X.509版本与扩展字段不兼容

这问题我之前排查过,核心原因是你的服务器证书是X.509 Version 1(从输出里的Version: 1 (0x0)能看到),但你给它添加了X509v3扩展字段——这直接违反了X.509标准:v1证书本身不支持扩展字段,Chromium/Chrome对标准的执行比openssl s_client严格得多,所以直接判定证书格式无效,抛出ERR_SSL_SERVER_CERT_BAD_FORMAT。

而openssl s_client对这种"混合格式"的兼容性更宽松,它会忽略版本与扩展的不匹配问题,正常读取扩展并完成证书链验证,所以你用它测试时能顺利通过。

解决步骤

要修复这个问题,你需要重新生成符合标准的X.509 Version 3服务器证书,具体操作如下:

  1. 准备OpenSSL配置文件
    创建或修改一个openssl.cnf文件,添加v3_cert段来定义你需要的扩展字段,示例内容:

    [v3_cert]
    basicConstraints = CA:FALSE
    subjectAltName = DNS:tseng.l5.ca,DNS:localhost
    subjectKeyIdentifier = hash
    
  2. 重新签署服务器证书
    用你的CA证书和密钥,基于之前的CSR(或者重新生成CSR)签署Version 3证书:

    openssl x509 -req -in your-server.csr -CA CA.crt -CAkey CA.key -CAcreateserial -out new-https-server.crt -days 730 -extensions v3_cert -extfile openssl.cnf
    

    (如果没有现成的CSR,先重新生成一个:openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out your-server.csr,注意填写正确的Subject信息)

  3. 验证新证书版本
    生成后用命令确认证书版本:

    openssl x509 -text -in new-https-server.crt
    

    你应该看到Version: 3 (0x2)的输出,同时扩展字段也会正常显示。

  4. 部署新证书
    将新生成的new-https-server.crt和对应的私钥替换到你的HTTPS服务器配置中,重启服务后再用Chromium/Chrome访问测试,应该就能正常加载了。

内容的提问来源于stack exchange,提问作者tzengia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:32:04