IIS 客户端证书授权在本地工作但远程不工作

IIS 客户端证书授权在本地工作但远程不工作

我一直在尝试在 IIS 端点上设置客户端证书授权。按照以下教程https://joji.me/en-us/blog/how-to-create-an-iis-website-that-requires-client-certificate-using-self-signed-certificates/ 我创建了一个根证书,然后根据该根证书创建了一个服务器证书和客户端证书。

我发现在我的服务器(Windows 2012 R2,使用 IIS 8.5)上,当我将根证书安装到受信任的根证书存储中并将客户端证书安装到当前用户的个人存储中时,我能够浏览到端点。我输入地址(https://localhost/foobar/endpointName),会出现一个客户端证书列表供我选择,如果我选择了正确的证书,我就可以到达端点。

远程情况则不同。当我从另一台安装了相同客户端证书(该证书安装在用户的个人存储中)的机器上尝试时,我没有得到可供选择的客户端证书列表,而只是收到 403 未授权错误。在这种情况下,URL 是https://serverCertName.domain.com/foobar/endpointName,其中 serverCertName.domain.com 具有正确的 A 记录。我也尝试在 IE 中执行此操作,您可以在其中专门加载证书并得到相同的结果。在我尝试访问的服务器上的 IIS 日志中,这些尝试被记录为 403.7。

我也尝试过使用 HttpClient (C#) 在远程服务器上的代码执行此操作,但同样得到了未授权的结果。我盯着屏幕看了好久,试图找出本地请求和远程请求之间的区别,但这次我的互联网搜索技巧失败了。

答案1

好吧,我终于找到了答案。我没有意识到我试图访问的端点位于负载均衡器后面,但事实证明确实如此。这就是我的问题的根源。

相关内容