Мне потребовалось перевести одно корпоративное приложение на шифрованный трафик. Чтобы выполнить эту задачу я проделал такую операцию.
1. С помощью корпоративного центра сертификации я по шаблону для Веб-серверов сгенерировал сертификат для доменного имени toolbox.domain.com, в виртуальной папке которого находится приложение. Добавил полученный сертификат к IIS серверу.
Сертификаты сервера IIS
2. В настройках веб-сайта проверил IP-адреса и порты, по которым отвечает веб-сайт для нешифрованного трафика.
Порты веб-сайта для нешифрованного трафика
3. Для приложения, которое надо перевести на шифрованный трафик, указал в качестве источника пустую папку.
Основные свойства приложения для нешифрованного трафика - указана пустая папка в качестве источника
4. В свойствах виртуального приложения в разделе HTTP Redirect отметил параметр "Redirect requests to this destination" и указал адрес, на который нужно переводить все запросы по порту 80: https://toolbox.domain.com/MyAccount. Так же указал параметр Redirect all requests to exact destination, чтобы переводить все запросы к точное место назначения вместо относительных путей назначения.
Перенаправление на HTTPS при вызове приложения в нешифрованном трафике
5. Далее я создал новый веб-сайт, который отвечает по тому же IP-адресу, что и основной сайт, но использует порт 443 и сертификат Веб-сервера.
Веб-сайт для шифрованного трафика по порту 443 (SSL).
6. В SSL свойствах нового сайта я указал Requre SSL и Client certificates: Accept, чтобы требовать SSL подключения и принимать сертификат от клиента, если он есть.
SSL свойства веб-сайта по шифрованному трафику
7. В новом веб-сайте я создал точно такое же виртуальное приложение, которое было в незащищенной версии, а в свойствах этого нового веб-приложения я указал папку с веб-страницами и кодом приложения.
Основные свойства приложения для шифрованного трафика - указана папка сайта в качестве источника
8. Когда все настройки сделаны, нужно перезапустить IIS сервер с помощью команды iisreset, и можно переходить к тестированию.
Теперь, когда пользователь наберет в адресной строке имя основного веб-сайта, например http://toolbox.domain.com, то он останется на незащищенном протоколе. Но как только ему потребуется перейти к приложению MyAccount, для которого я делал настройки перенапраления, сервер перебросит пользователя на защищенный веб-сайт.
Кстати, обратного перенапраления с HTTP на HTTPS не произойдет, когда пользователь захочет вернуться в основной раздел toolbox.domain.com, и другие приложения работать не будут, так как их просто-напросто нет в SSL версии сайта. Чтобы решить эту проблему, нужно поставить перенапраление с HTTPS на HTTP для веб-сайта ToolboxSSL.