IIS 反向代理和源服务器之间的客户端证书身份验证

Client Certificate Authentication between IIS reverse proxy and origin server

我对 IIS 还很陌生。我们需要使用 IIS 设置反向代理。现在源/后端服务器可以在 HTTP 或 HTTPS 上。

我们已成功在 IIS 上为客户端配置相互身份验证以要求 SSL 并提供客户端证书。

我们现在需要的是开启IIS反向代理和源站之间的相互认证。如下所示:

----------                ---------------------                ----------
| Client | --- HTTPS ---> | IIS Reverse Proxy | --- HTTPS ---> | Origin |
----------                ---------------------                ----------

除了问题使用 Apache HTTPD 之外,此设置要求类似于 this question。可以使用 IIS 进行此设置吗?

任何参考 link/文档将不胜感激。

没有client的话,原生ARR和origin Server之间恐怕是无法相互认证的。因为我们找不到那种ProxyCertificate 属性.

您只能按照此 link 设置 IIS ARR 代理。然后客户端将能够将客户端证书发送到 ARR 服务器,ARR 将添加一个请求 header X-ARR-ClientCert 以将客户端证书发送到您的源服务器。

https://blogs.msdn.microsoft.com/benjaminperkins/2014/06/02/configure-application-request-routing-arr-with-client-certificates/

然后您的源服务器可以通过处理 X-ARR-ClientCert header 或 asp.net HttpRequest.ClientCertificate 属性.

来处理身份验证

https://docs.microsoft.com/en-us/azure/app-service/app-service-web-configure-tls-mutual-auth