kli*_*ron 5 google-chrome certificate ssl windows-10
我有一个 nginx 安装和一个自签名 CA,我希望我的用户使用该 CA 签名的客户端证书进行身份验证。
在 Linux 中,Firefox 和 Chrome 都能完美运行。在 Windows 10 上,Firefox 运行良好。所以我知道这不是服务器、系统时钟或证书本身的配置错误。
我通过运行 certmgr.msc 导入证书。我将客户端证书存储在“个人”存储中,将 CA 的证书存储在“受信任的根证书颁发机构”中。然后我通过重新启动chrome chrome://restart,甚至重新启动Windows也无济于事。
在我收到有关服务器证书真实性未得到验证的(预期)警告后,在 Linux 和 Windows 中的 Firefox 上,我可以选择“仍然继续”。在 Windows Chrome 和 IE 上,我没有这样的选项。Chrome 显示以下屏幕:
我正在使用 Chrome v56(64 位)
有什么办法可以解决我不知道的这个问题吗?为什么 Chrome 取消了在 Windows 上继续进行的选项,但该选项在其他操作系统上仍然存在?
编辑
在 MacOS 上,Chrome 的行为与 Linux 上类似。将证书导入用户的钥匙串后,我会看到相同的警告和“仍然继续”的选项。
我不知道这是 Chrome 的问题还是 Windows 强制执行的一些安全限制,但我发现它非常不切实际且烦人。
如果有人遇到同样的问题,这里是解决方案,它应该适用于 Windows 7、8 和 10。
创建 Windows 管理控制台文件。Start -> Run -> mmc.exe
在控制台窗口中:File -> Add/Remove Snap-in...
选择Certificates管理单元并My user account在下一个窗口中选择管理证书。
返回对话框Add or Remove Snap-ins,选择组策略对象编辑器并将其添加到控制台根目录。在下一个对话框中保留Group Policy Object设置,然后单击“完成”。LocalComputer
单击“确定”离开Add or Remove Snap-ins对话框。
此时您应该看到如下所示的控制台窗口:
现在,导入您的证书。
展开Certificates管理单元并单击Personal。然后右键单击中间窗格并选择All Tasks -> Import...。将出现证书导入向导。只需导入用户的证书,无需更改任何默认设置。
展开Trusted Root Certification Authorities并单击Certificates。再次单击中间窗格并选择All Tasks -> Import...。导入 CA 的证书而不更改任何默认设置。
现在到有趣的部分......
返回到Console Root,在Local Computer Policy管理单元下导航至Computer Configuration-> Windows Settings-> Security Settings-> Public Key Policies。您应该看到这样的窗口:
双击Certificate Path Validation Settings。检查Define these policy settings并选择设置,如下图所示。
然后,单击Select Certificate Purposes并确保包含您的预期目的(客户端身份验证和服务器身份验证是我需要的。)。单击Apply并关闭控制台窗口。系统会询问您是否要保存设置。如果您想保存配置供其他人重复使用,您可以选择这样做。
确保重新启动 Chrome 或 IE 以使更改生效。
| 归档时间: |
|
| 查看次数: |
23941 次 |
| 最近记录: |