IIS Rewrite Reverse Proxy получает ошибку HTTP 502 при использовании SSL - PullRequest
0 голосов
/ 20 апреля 2020

Я ищу идеи / предложения для настройки / устранения неполадок конфигурации, которая позволяет мне отлаживать сценарий следующим образом. Я использую IIS 10, Visual Studio 2017

У меня есть веб-приложение, которое отправляет сообщение на сторонний сайт. Затем сторонний сайт публикует ответ обратно в мое веб-приложение. IIS имеет обратный прокси-сервер (показан ниже), который направляет сообщение из стороннего приложения в IIS Express, где мое приложение работает в IIS Express (VS 2017).

Все соединения используют SSL. IIS Express использует самозаверяющий сертификат, который поставляется с VS2017.

Вызов приложения, работающего на IIS Express, из стороннего приложения через обратный прокси-сервер работал до тех пор, пока я не переключился на использование SSL. (Это решение требует SSL).

url = "https://10.10.203.132: 44349 / {R: 1}" -> это компьютер, на котором выполняется мое приложение в VS2017.

Теперь я получаю 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>

1 Ответ

0 голосов
/ 24 апреля 2020
  <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
Не стесняйтесь, дайте мне знать, если проблема все еще существует.

...