我将 IIS ARR 设置为反向代理,并在其后面放置一个 Web 应用程序。如果我向代理发送 HTTPS 请求,并在标X-ARR-ClientCert
头中带有值,则该值将无法到达 Web 应用程序。如何解决此问题?
我已将 SSL 设置设为接受客户端证书。根据本指南我还将system.webServer/proxy
配置字段更改为其他内容,但X-ARR-ClientCert
没有成功。
代理可以正确传递任何其他标头。
答案1
如果与 ARR 进行了相互 SSL 握手,则会发送 X-ARR-ClientCert。通过带有 X-ARR-ClientCert 标头的 https 发送请求是不够的,因为在这种情况下实际上没有相互 SSL 握手。通过相互 SSL 握手,这意味着浏览器或客户端会收到客户端证书提示,并且客户端会提供证书。
如果你希望你的设置与 X-ARR-ClientCert 标头配合使用,我建议安装ARR 助手。它的一个功能是读取 X-ARR-ClientCert 标头(可配置为具有 base64 编码证书的任意标头)并模拟获取客户端证书的请求。