在 IIS 中使用 ARR 时出现错误网关 502.3

在 IIS 中使用 ARR 时出现错误网关 502.3

在尝试将请求代理到外部网站时,我们遇到了 ARR 配置问题。我们的服务器配置如下:

  1. 我们控制的带有 IIS 7.5 的 Web 服务器。它运行几个网站,全部通过 HTTP年代仅有的
  1. 我们客户的网站,我们无法控制,也无法更改其配置。为了便于讨论,他们的域名是 https://www.parashka.com

我们需要我们的服务器接受对我们控制的特定子域的请求,即https://gateway.muciacio.net并将其转发到客户的网站https://www.parashka.com. 也可以通过 HTTP 访问年代仅有的。

为此,我在 IIS 中创建了新的网站节点,gateway.muciacio.net通过 HTTPS 将其绑定,并调整 ARR/URL 重写规则如下:

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="ReverseProxyInboundRule1" stopProcessing="true">
          <match url="(.*)" />
          <action type="Rewrite" url="https://www.parashka.com/{R:1}" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>   
</configuration>

现在我得到了 HTTP502.3网关错误。失败请求跟踪也显示它是由代码错误引起的21479545750x80072F8F),我相信错误_WINHTTP_SECURE_FAILURE

有趣的是,如果我配置 ARR 将请求转发到我们自己的服务器上的站点,例如action用这个替换条目:

<action type="Rewrite" url="https://customerX.muciacio.net/{R:1}" />

然后错误就消失并且一切按预期进行。

另一方面,如果我将 ARR 重新定位到某个知名网站,比如 stackoverflow:

<action type="Rewrite" url="https://stackoverflow.com/{R:1}" />

然后同样的错误2147954575再次出现,这让我认为客户的网站不应该受到指责,这是我们这边的问题。

我在互联网上发现一些模糊的评论,指出需要在两个 Web 服务器上使用相同的 SSL 证书。然而,这在我们的环境中毫无意义,因为服务器位于不同的域中,由不同的组织控制。

另请注意,我们的服务器是 Windows Server 2008 R2(近期无法升级,无法做太多事情)

相关内容