我有一台配置了 ARR 的 IIS 服务器,用于将代理请求反向发送到后端服务器。后端服务器需要客户端证书身份验证,但是,它只需要验证反向代理(不是最终用户)。
最终用户身份验证是在请求内容内部传递的,并不是有问题的部分。
End User -->-- IIS with ARR -->(mutual SSL)>-- Backend web server
如何在 IIS 或 ARR 中配置客户端证书?
在搜索时,我经常发现与将客户端证书从最终用户转发到后端服务器相关的问题和线程,但这是不可能的。此外,这些通常表示关闭后端服务器上的客户端证书身份验证,但这必须保持打开状态。
以下是我发现的一些问题,但它们都与最终用户客户端证书有关:
答案1
Microsoft ARR 很可能使用 CAPI 来存储其证书,但即使您向 ARR 提供证书,也无法保证 ARR 会使用它。客户端身份验证需要额外的代码,而您的要求并不常见。它可能被忽视并被遗忘了……
要使客户端证书可用于服务,您必须编辑其“我的”CAPI 存储。从提升的提示符运行 mmc.exe 并添加证书管理单元。您必须选择要使用的 CAPI 存储。选择计算机的存储。在“个人证书”中导入您的证书,确保您随证书一起导入了私钥(当您返回并查看您导入的证书时,它会显示这一点)。
如果将证书添加到计算机存储不起作用,请尝试服务存储。如果 ARR 以其自己的身份运行,则需要这样做。
我也遇到了 AD-LDS 的问题,该服务没有对私钥的读取权限。本文很有帮助,但对于 ARR 来说可能太远了。在该页面中查找 ADAM 特殊情况,您要查找的命令是
Certutil –V –Verifystore MY 0