我是新来的相互SSL。因此我的理解如何客户端证书可能是错误的。
在IIS中使用客户端证书时,是否需要从已配置IIS HTTPS绑定的同一证书(或CA)颁发这些证书?
- 我的开发IIS有一个自签名证书。
- 对于客户端证书,我已经根据post here创建了一个CA和一个客户端证书。
- CA在本地计算机的“受信任根证书颁发机构”中。
- 客户端证书在我的个人证书文件夹中。
- 在IIS上,我将客户端证书设置为接受。
第一个奇怪的事情是,当我浏览到我的页面,IE总是显示我403.7。即使我已经禁用IE设置“不提示客户端证书选择...",没有窗口打开证书选择。
另外,当访问附加了客户端证书的HttpWebRequest页面时,响应总是403。不幸的是,我没有弄清楚如何获得子状态。
当客户端证书的RootCA位于受信任的根存储中时,IIS为什么不接受我的客户端证书?是否有方法获取问题所在的详细信息?
谢谢
托马斯
2条答案
按热度按时间qxsslcnc1#
终于可以解决这个问题了:
我根据教程here生成的CA和客户端证书没有在证书存储中分配私钥。我必须从证书存储中删除证书并导入包含私钥的PFX文件。
第二,客户端证书需要在当前用户/个人存储中,以便IE可以拾取它。我最初是在当前计算机/个人存储中生成的。
可能有一个直接的方法来创建这两个证书,包括使用makecert创建私钥。但是PFX导入对我来说是最简单的方法。
sycxhyv72#
在我这边三天的尝试和错误之后:如果在Windows 2022上使用IIS 10,则默认情况下TLS1.3处于打开状态。The SSL handshake seems not to be implemented correctly in browsers/curls/.... for this case。出于测试原因,请在
添加:
DisabledByDefault
作为Dword
与1
并重新启动服务器(不仅仅是IIS!)