Преобразование существующего сервера HTTP-ретрансляции, развернутого в настоящее время в качестве службы Windows, для обработки запросов https - PullRequest
0 голосов
/ 15 октября 2018

У меня есть пользовательское приложение сервера ретрансляции в VB.NET, которое в настоящее время развернуто как служба Windows.

Он принимает веб-запросы HTTP от клиента с помощью прослушивателя Tcp, анализирует запросы и перенаправляет их в другую удаленно размещенную службу через соединение через сокет.Результат от службы затем отправляется моим сервером ретрансляции на исходный клиент в виде ответа http.

На данный момент эта функция работает отлично, но теперь я хотел бы обновить сервер ретрансляции для приема запросов HTTPS.вместо http.Я не уверен, как двигаться дальше с этим сценарием.

Я исследовал и нашел следующие 2 варианта, но я не уверен, что лучше и выполнимо?Во-первых, я явно обновляю свой текущий код для обработки рукопожатия https, проверки сертификата и т. Д. (Если так, как?) Или второго варианта, могу ли мое текущее приложение быть размещено на IIS для обработки этого сценария (если так, как)?

Заранее спасибо.

1 Ответ

0 голосов
/ 15 октября 2018

Возможным решением является использование IIS с маршрутизацией запросов приложений (ARR) в качестве обратного прокси-сервера перед вашей службой (невозможно «разместить» вашу службу в IIS как таковой).

Вы можете настроить IIS / ARR с сертификатом и подходящей привязкой HTTPS, а затем настроить ARR для прокси-запросов HTTPS на вашу службу, прослушивающую HTTP.Никаких изменений в коде вашей службы не требуется.

Взгляните на следующий пример: https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/reverse-proxy-with-url-rewrite-v2-and-application-request-routing

В вашем случае ваша служба, прослушивающая порт 80, ничем не отличается от веб-сайта, работающего в IIS.Вышеприведенный пример сложнее, чем вам нужно (как обратный прокси-сервер с двумя веб-сайтами на основе префикса URL), но он дает вам отправную точку.

Еще один возможный шаг, чтобы заставить весь трафик использовать HTTPS, - это изменить порт, используемый вашей службой (например, на 8080 вместо 80), затем настроить IIS для обработки порта 80 для выполнения перенаправления на 443, изатем используйте 443 и ARR для прокси вашего трафика на 8080.2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...