![应用程序请求路由反向代理不转发 X-ARR-ClientCert 标头](https://linux22.com/image/688479/%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E8%AF%B7%E6%B1%82%E8%B7%AF%E7%94%B1%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E4%B8%8D%E8%BD%AC%E5%8F%91%20X-ARR-ClientCert%20%E6%A0%87%E5%A4%B4.png)
我将 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 编码证书的任意标头)并模拟获取客户端证书的请求。