Chrome 中的证书有哪些新要求?

Rob*_*pin 5 ssl google-chrome ssl-certificate

Chrome 现在会抛出NET::ERR_CERT_INVALID其他浏览器支持的一些证书。

我能找到的唯一线索是关于新的 Chrome 根存储区的问题列表,该存储区也阻止了企业 CA 安装。

https://chromium.googlesource.com/chromium/src/+/main/net/data/ssl/chrome_root_store/faq.md

尤其,

Chrome 证书验证程序将应用标准处理,包括检查:

  • 证书的密钥用法和扩展密钥用法与 TLS 用例一致。
  • 证书有效期不是过去或将来。
  • 密钥大小和算法是已知的且质量可接受。
  • 是否包含不匹配或未知的签名算法。
  • 该证书不会链接到或通过被阻止的 CA。
  • 符合 RFC 5280。

我验证了我的证书在 Edge 中按预期工作。

此外,我验证了证书的版本为“3”,具有 2048 位密钥,并且具有用于服务器身份验证的扩展密钥用法。

我仍然不明白当浏览器只说“无效”时,该证书应符合哪个“标准”。有我可以使用的简单模板或策略吗?

Rob*_*pin 5

Chrome 现在拒绝包含称为pathLenConstraint或有时显示为 的变量的 TLS 证书Path Length Constraint

我使用的是 Microsoft Active Directory 证书服务颁发的证书。已启用基本约束扩展,并且 AD CSPath length Constraint=0在此配置中错误地注入最终实体的非 CA 证书。

解决方案是颁发没有基本约束的证书。只要路径长度变量不存在,Chrome 浏览器对基本约束的打开或关闭都同样满意。

用于故障排除的更好资源之一是此证书 Linter:

https://crt.sh/lintcert

它发现服务器证书中存在多个错误,包括路径长度设置为零。

我还发现了一个讨论各种证书颁发机构以相同方式颁发证书的帖子,因此这是一个相当常见的问题。

https://github.com/pyca/cryptography/issues/3856

另一个好的资源是我作为替代 CA 安装的小步开源项目。生成通用证书后,无效的证书错误消失了,我意识到 Microsoft 和 Google 程序之间发生了一些问题。