Mat*_*ler 7 google-chrome .net-core self-signed-certificate
我正在使用 powershell New-SelfSignedCertificate 创建证书并导入到 .netcore 项目的受信任根中。
它一直运行良好,但最近停止了,证书要到 2024 年才会过期。
我使用的是 Chrome 106。
关于它为什么会停止以及如何修复有什么想法吗?
是的,Chrome 推出了自己的证书根存储区。他们说这种情况早在 Chrome 105 中就发生过,但自 Chrome 106 以来我们才开始在企业环境中遇到问题。
\n在 Windows 上,您可以通过注册表禁用此新功能:
\nChromeRootStoreEnabled
在 HKEY_LOCAL_MACHINE\\SOFTWARE\\Policies\\Google\\Chrome 中摘自chromeenterprise。但请不要忘记,在不了解自己所做的事情的情况下禁用此功能可能会带来安全风险 - 在这种情况下,这不是一个大风险,但无论如何。
\n该文档实际上指出新的根存储区考虑了本地受信任的证书:
\n\n\nChrome 证书验证程序在证书验证过程中会考虑本地管理的证书。这意味着,如果企业将根 CA 证书分发给其用户(例如,通过 Windows 组策略对象),则该证书在 Chrome 中将被视为受信任。
\n
我们使用自己的CA在企业环境上签署测试网站HTTPS证书。所以我们看起来一定没有受到影响。但即使开发团队中的每个人都将我们的 CA 安装在受信任的根目录中 - 我们仍然面临这个问题。我不确定这是否是一个错误,或者我们还需要了解哪些 CA 被接受、哪些不被接受。
\n我发现除了我们团队的CA之外,还有另一个本地企业CA。Chrome 接受该 CA 颁发的 \xd0\xa1 证书,而无需禁用新的根存储 - 因此 Chrome 显然不会忽略本地受信任的证书。
\n经过一番尝试和错误后,我发现问题不在于 CA 证书,而在于端点 CA 签名证书。现已被拒绝的旧测试证书包含以下属性:
\nBasic Constraints
:主题 = 不是 CA,路径长度 = 0Key Usage
:数字\xc2\xa0签名,密钥\xc2\xa0加密Extended Key Usage
:TLS 服务器、TLS 客户端 + 9 个内部自定义 OIDSubject Alternative Name
: localhost + 大约 30 个测试网站各个域中的 DNS 名称删除该Basic Constraints
属性使 Chrome 最终接受了证书。
因此,除了新的根存储之外,证书验证程序还发生了更多变化。到目前为止,我还没有找到任何关于它们到底改变了什么的文档。AFAIK即使在非 CA 证书中也是Basic Constraints
一个绝对好的属性,所以对我来说它看起来像是 Chrome 中的一个错误。
归档时间: |
|
查看次数: |
3148 次 |
最近记录: |