2012-02-06 5 views
2

В нашей производственной среде сайт работает под управлением HTTPS с завершением SSL на балансировщике нагрузки и передачей трафика на серверы IIS в виде HTTP.Имитировать завершение SSL с помощью IIS Express

Внутри сайта есть различные внутренние и сторонние компоненты и элементы управления, а некоторые из них используют механизмы, аналогичные свойству .NET System.Web.HttpRequest.IsSecureConnection, которое просто запрашивает серверную переменную HTTPS, чтобы вернуть ее результат. Поскольку подключение к веб-серверу из балансира нагрузки является HTTP, эти методы возвращают неправильное значение и приводят к сбою некоторых компонентов. Например, компонент может направить пользователя на URL-адрес HTTP вместо HTTPS для файла JavaScript и заставить браузер не загружать смешанный контент.

Чтобы отладить эти компоненты и разработать обходной путь, мне нужно воссоздать этот сценарий на моей машине разработки. Мой вопрос: есть ли простой способ имитировать SSL-соединение с внешним завершением для среды разработки Visual Studio/IIS Express?

+0

Почему бы не установить самоподписанный ssl на iis express? http://stackoverflow.com/questions/5521305/iis-express-getting-ssl-to-work – Aristos

+0

Потому что это даст все, что запрашивает переменную сервера _HTTPS_ неправильное значение. Мне нужно смоделировать живую среду, где это будет OFF. – SilverlightFox

+0

Извините, неправильно поймите. - Пропуск трафика осуществляется с помощью перенаправления? или общее оборудование? Можете ли вы настроить балансировку нагрузки для передачи https? – Aristos

ответ

2

Я нашел способ, используя Port Forwarding Wizard.

Создайте одно TCP-сопоставление с портом прослушивания, установленным в резервный порт (например, 443), назначение как localhost с портом веб-сервера (например, 80). Оставьте все остальное по умолчанию, но зайдите в SSL-шифрование и создайте Root-ключ и сертификат в Центре CA. После этого выберите «Включить SSL-шифрование» и выберите «Сервер». Создайте файл приватного ключа, файл Cert Req и сертификат, а затем bob - ваш дядя, вы получите завершенную пересылку SSL на локальный сервер IIS Express: просто запустите отображение порта и затем подключитесь к https://localhost с помощью вашего веб-браузера (указав порт, если он не 443).

+0

Спасибо за подсказку - это работает как шарм. Просто не забудьте загрузить [Pro Edition] (http://www.port-forwarding.net/port-forwarding-software/port-forward.html), поскольку SSL не включен в версию, доступную непосредственно из вашей ссылки. – jmosbech

+0

Спасибо, ссылка обновлена. – SilverlightFox