将 IIS 设置为 HTTPS 请求的转发代理

将 IIS 设置为 HTTPS 请求的转发代理

是否可以将 IIS 设置为 HTTPS 请求的正向代理?

我的用例是这样的:我在 IIS 计算机上本地运行了一些进程,这些进程可以进行 HTTP 调用,但不能进行 HTTPS 调用。我想设置 IIS,以便我可以向它发送 HTTP 请求(在本地主机上),然后 IIS 会将该请求作为 HTTPS 请求转发到真实 URL(使用基于原始 URL 的某种映射)。

像这样:

myprogram on server1 <-> http <-> IIS on server1 <-> https <-> server2

这可能吗?此链接 (http://www.iis.net/learn/extensions/configuring-application-request-routing-(arr)/creating-a-forward-proxy-using-application-request-routing) 说“请注意,ARR 仅处理 HTTP 流量,而不处理其他协议。ARR 不支持 HTTP CONNECT 动词,因此不支持转发 HTTPS 流量。”但也许还有其他方法可以在 IIS 上实现这一点?

答案1

这实际上非常简单,并且是 SSL 卸载的一个案例。

  1. 安装Application Request Routing (ARR)URL Rewrite使用Web Plattform Installer,重新启动您的 IIS 管理器。

  2. 现在您应该Server Farms在 IIS 管理器树中看到一个条目。如果您有Server 1 with the IP 192.168.1.1HTTP作为Server 2 with the IP 192.168.1.2公开的HTTPS端点,则只需设置一个服务器场,并将其添加Server 1到其中(通过 IP 或本地 DNS 名称,Server 2必须能够解析名称Server 1)。不要将服务器 2 添加到 Web Farm。它会要求您允许自动创建重写规则以正确转发请求。*

  3. 创建一个具有到服务器 2 的 SSL 绑定的标准网站(如果您在 IIS 上托管多个站点,则可能具有 SNI 主机名)。

  4. 然后,单击服务器本身(在 IIS 管理器中)并进入“URL 重写”模块。在那里,您将找到名为 ARR_[ServerFarm]_Loadbalance 的新重写模块。双击规则,在“条件下”,添加与{HTTPS}模式on(Pattern) 匹配的 (Input)。

在“操作”下,选择“操作类型”Route to Server Farm并将“操作属性”设置为Scheme: http://Server farm: [YourServerFarmName]并保持路径不变。Stop processing of subsequent rules如果尚未勾选,您也可以勾选。

*注意:如果您已在此服务器上运行其他网站(可能使用 SNI),您还应在重写规则中添加另一个条件,以便在查询相应的 URL 时仅转发到服务器群。条件与{HTTP_HOST}模式匹配yoururl.com

希望有所帮助。

相关内容