IIS重写反向代理在使用SSL时获取HTTP 502错误

rlcwz9us  于 2023-03-03  发布在  其他
关注(0)|答案(2)|浏览(357)

我正在寻找设置/故障排除配置的想法/建议,以允许我调试如下场景。我正在使用IIS 10,Visual Studio 2017
我有一个Web应用程序向第三方站点发布消息,然后第三方站点将响应发布回我的Web应用程序。IIS有一个反向代理(如下所示),可将第三方应用程序的发布内容定向到我的应用程序在IIS Express(VS 2017)中运行的IIS Express。
所有连接都使用SSL。IIS Express使用VS 2017附带的自签名证书。
通过反向代理从第三方应用调用IIS Express上运行的应用可以正常工作,直到我更改为使用SSL。(此解决方案需要SSL)。
url=“https://10.10.203.132:44349/{R:1}”-〉这是我的应用在VS 2017中运行的计算机。
现在我得到了一个502错误子代码3,我的应用程序从来没有被调用。在失败的请求跟踪中没有其他信息
有什么建议吗?

<configuration>
<system.webServer>
    <rewrite>
        <rules>
            <rule name="Reverse Proxy" enabled="true" stopProcessing="true">
                <match url="(.*)" />
                <action type="Rewrite" url="https://10.10.203.132:44349/{R:1}" />
            </rule>
        </rules>
        <outboundRules>
            <rule name="Ensure samesite Cookies" preCondition="Missing samesite cookie">
                <match serverVariable="RESPONSE_Set_Cookie" pattern=".*" negate="false" />
                <action type="Rewrite" value="{R:0}; SameSite=None" />
            </rule>     
            <preConditions>
                <preCondition name="Missing samesite cookie">
                    <!-- Don't remove the first line here, it does do stuff! -->
                    <add input="{RESPONSE_Set_Cookie}" pattern="." />
                    <add input="{RESPONSE_Set_Cookie}" pattern="; SameSite=None" negate="true" />
                </preCondition>
            </preConditions>            
        </outboundRules>
    </rewrite>
</system.webServer>
yhqotfr8

yhqotfr81#

<system.webServer>
    <rewrite>
      <rules>
        <rule name="Reverse Proxy" enabled="true" stopProcessing="true">
          <match url="(.*)" />
          <action type="Redirect" url="https://10.10.203.132:44349/{R:1}" appendQueryString="true" logRewrittenUrl="false" />
          <conditions logicalGrouping="MatchAll">
                        <add input="{SERVER_PORT_SECURE}" pattern="0" /></conditions>
        </rule>
      </rules>

这里有另一个解决方案。
https://www.namecheap.com/support/knowledgebase/article.aspx/9953/38/iis-redirect-http-to-https
如果问题仍然存在,请随时告诉我。

iq3niunx

iq3niunx2#

远端服务器可能启用了服务器名称标识(SNI),这可能会导致502.3问题,因为请求没有正确发出,因此请求失败。
你可以在你控制的服务器上测试,打开SNI,你的配置应该失败。关闭它,它应该成功。
远端服务器可能不需要SNI,但“只是因为”才打开它。它也可以让它的站点在自己的IP上运行,并禁用SNI。
我也见过配置IIS代理来正确处理SNI,但我从来没有这样做过。我留下这个作为参考:
https://techcommunity.microsoft.com/t5/iis-support-blog/arr-configuration-for-backend-sites-with-sni-binding-on-iis/ba-p/2658104

相关问题