Можно ли настроить 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?
На самом деле это довольно просто и подходит для разгрузки SSL.
Установить Application Request Routing (ARR)
и URL Rewrite
с Web Plattform Installer
, перезапустите диспетчер IIS.
Теперь вы должны увидеть Server Farms
запись в дереве диспетчера IIS. Если у вас есть Server 1 with the IP 192.168.1.1
так как HTTP
и Server 2 with the IP 192.168.1.2
как выставлено HTTPS
Конечная точка, вы просто настраиваете ферму серверов, добавляете Server 1
к нему (по IP или локальному DNS-имени, Server 2
должен иметь возможность разрешить имя Server 1
). Не добавляйте Сервер 2 к веб-ферме. Вам будет предложено разрешить автоматическое создание правила перезаписи для правильной пересылки запросов. *
Создайте стандартный веб-сайт, который имеет привязку SSL к серверу 2 (возможно, с именем хоста SNI, если у вас есть несколько сайтов, размещенных на IIS).
Затем щелкните на самом сервере (в диспетчере IIS) и перейдите в модуль «URL Rewrite». Там вы найдете новый модуль перезаписи под названием ARR_ [ServerFarm] _Loadbalance. Дважды щелкните правило и в разделе «Условия» добавьте {HTTPS}
(Ввод), который соответствует шаблону on
(Шаблон).
В разделе «Действие» выберите «Тип действия». Route to Server Farm
и установите для свойств действия значение Scheme: http://
, Server farm: [YourServerFarmName]
и оставь путь нетронутым. Затем вы можете также отметить Stop processing of subsequent rules
если это еще не отмечено.
* ПРИМЕЧАНИЕ. Если у вас уже есть другие веб-сайты, работающие на этом сервере (возможно, с SNI), вам также следует добавить еще одно условие в правило перезаписи, чтобы пересылать только на ферму серверов, если запрашивается соответствующий URL-адрес. Состояние {HTTP_HOST}
соответствует образцу yoururl.com
.
Надеюсь, это поможет.