Назад | Перейти на главную страницу

Настройте 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?

На самом деле это довольно просто и подходит для разгрузки SSL.

  1. Установить Application Request Routing (ARR) и URL Rewrite с Web Plattform Installer, перезапустите диспетчер IIS.

  2. Теперь вы должны увидеть 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 к веб-ферме. Вам будет предложено разрешить автоматическое создание правила перезаписи для правильной пересылки запросов. *

  3. Создайте стандартный веб-сайт, который имеет привязку SSL к серверу 2 (возможно, с именем хоста SNI, если у вас есть несколько сайтов, размещенных на IIS).

  4. Затем щелкните на самом сервере (в диспетчере 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.

Надеюсь, это поможет.