В данной статье описан Импорт SSL сертификата в IIS 10, выпуск SSL сертификата был описан ранее. Для импорта нам потребуется конвертировать сертификат из PEM в PFX. Для этого используем OpenSSL на сервере, если его нет или вы не знаете его команд, можно использовать онлайн Конвертер или его аналоги.
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
Для надежности заполняем PFX Password и запоминаем/записываем пароль (желательно символьно-числовой), без него сертификат не установить.
Импорт SSL сертификата
Поиском открываем консоль Microsoft Management Console (MMC), достаточно ввести mmc и ее нам найдет.
В окне консоли «Файл» > «Добавить/удалить оснастку»
Далее, в окне «Добавление и удаление оснасток» на панели «Доступные оснастки» (слева) выберите «Сертификаты» и нажмите «Добавить>».
Видим окно «Оснастка диспетчера сертификатов» > выберите «учетной записи компьютера» и нажмите «Далее>».
В окне «Выбор компьютера» выберите «Локальным компьютером (тем, на котором выполняется эта консоль)» и нажмите «Готово».
В окне «Добавление и удаление оснасток» нажмите «ОК».
В окне консоли (Корень консоли, слева), щелкните правой кнопкой мыши (ПКМ) на папку «Размещение Веб-служб» и выберите «Все задачи» > «Импорт».
Видим окно Мастер импорта сертификатов и нажимаем кнопку Далее.
На странице импорта найдите через «Обзор» и выберите файл, который вы хотите импортировать, а затем нажмите «Далее».
Заранее файл был добавлен в C:\Windows\System32\ (Вы можете поместить его в иной каталог). Примечание: в окне «Проводника» в раскрывающемся списке «Тип файла» обратите внимание на типов файлов и выберите «Все файлы» (*.*) или (*.pfx), для поиска файла сертификата.
В окне «Защита с помощью закрытого ключа» задаем пароль, который указывали при конвертации сертификата в PFX и проверяем галочки, как на изображении ниже:
нажимаем «Далее»
На странице «Хранилища сертификатов» выбираем «Поместить все сертификаты в следующее хранилище», где в окне «Выбор хранилища сертификатов» выберите «Размещение Веб-служб» и нажмите «ОК». Нажмите кнопку «Далее»
На странице «Завершение мастера импорта сертификатов» проверяем правильность настроек и нажимаем кнопку Готово.
Вы должны получить сообщение «Импорт выполнен успешно».
Сертификат SSL с закрытым ключом в файле .pfx теперь сохранен в хранилище хостинга.
Как настроить Windows Server для использования импортированного сертификата SSL
После импорта сертификата SSL в Windows Server необходимо настроить IIS 10, чтобы импортированный сертификат давал защиту вашему сайту.
Откройте «Диспетчер служб IIS» > в дереве меню Подключения (левая панель) разверните панель и выберите сайт (у нас это Default Web Site). Видим «Начальная страница Default Web Site» (по центру), где в меню «Действия» (правая панель) в разделе «Изменение веб-сайта» щелкните на ссылку «Привязки…». В окне «Привязки сайта» нажмите «Добавить»
В окне «Добавление привязки сайта» выполните следующие действия и нажмите кнопку «ОК»:
Тип: из списка выберите https
IP-адрес: выберите «Все неназначенные»
Порт: 443 (Порт, через который трафик будет зашифрован с помощью SSL по умолчанию 443)
SSL-Сертификат: В раскрывающемся списке выберите сертификат SSL (надо указать точное имя установленного сертификата, у нас domainssl.ua)
Готово, SSL-сертификат установлен и сайт настроен на безопасное соединение. Можно закрыть окно.
Настройка перенаправления HTTP на HTTPS в IIS
После того как мы установили сертификат SSL, сайт по-прежнему остается доступным через обычное соединение HTTP, которое считается небезопасным. Для безопасного подключения посетители должны самостоятельно указать https:// при вводе адреса вашего сайта (домена) в своих браузерах и зачастую этого никто не делает.
Чтобы установить безопасное соединение на вашем сайте, необходимо настроить правило перенаправления (редирект) HTTP на HTTPS. После чего, любой посетитель вашего сайта переходя/вводя домен «yourdomain.com», будет перенаправлен на «https://yourdomain.com» или «https://www.yourdomain.com» (в зависимости от вашего выбора), где весь трафик зашифрован при передаче между сервером и клиентом.
Откройте «Диспетчер служб IIS» > в дереве меню Подключения (левая панель) разверните панель и выберите сайт (у нас это Default Web Site). Видим «Начальная страница Default Web Site», где дважды щелкнуть (ЛКМ) на значок «Переопределение URL-адресов».
Если URL Rewrite Module отсутствует, качаем его на сайте IIS
В окне «Добавить правила» меню «Правила для входящего трафика» выберите «Пустое правило», затем нажмите ОК.
Указываем Имя правилу и заполняем ниже расположенные разделы:
В разделе «Соответствует URL-адресу»:
– Указать «Соответствует шаблону» из меню «Запрошенный URL-адрес».
– Указать «Регулярные выражения» из меню «Использование».
– Шаблон: (. *)
– Установить флажок «Не учитывать регистр»
В разделе «Условия» выберите «Совпадение со всеми» из меню «Логическая группировка» и нажмите «Добавить».
В появившемся окне «Добавить условие»:
– Введите {HTTPS} в поле «Ввод условия»
– Выберите «Соответствует шаблону» из выпадающего списка
– Введите ^ OFF $ в поле «Шаблон»
– Флажок «Не учитывать регистр»
– Нажмите ОК
В разделе «Действие» выберите «Перенаправление» из меню «Типа действия» и укажите в поле «URL-адрес перенаправления»:
https://{HTTP_HOST}/{R:1}
Установите флажок «Добавить строку запроса»
Выберите «Постоянное (301)» из меню «Тип перенаправления»
Нажмите «Применить» вверху справа из меню «Действия».
Теперь нам нужно применить правило к самому сайту.
В «Диспетчер служб IIS» щелкните ПКМ на свой сайт (у нас это Default Web Site) и выберите «Проводник», откроется корневой каталог сайта, где найдите файл web.config и откройте его. Проверьте содержимое на следующий блок кода (если его нет, добавьте). Также, не лишним будет сделать бекап файла web.config в случае неудачи, можно вернуть старый файл. Главное вписать код в соответствующие блоки в файле.
<configuration> <system.webServer> <rewrite> <rules> <rule name=”HTTPS force” enabled=”true” stopProcessing=”true”> <match url=”(.*)” /> <conditions> <add input=”{HTTPS}” pattern=”^OFF$” /> </conditions> <action type=”Redirect” url=”https://{HTTP_HOST}/{R:1}” redirectType=”Permanent” /> </rule> </rules> </rewrite> </system.webServer> </configuration>
Если web.config отсутствует, создайте новый файл ТХТ (например, 1.txt) и вставьте в него код, сохраните, а потом переименуйте файл в web.config
Теперь перенаправление можно проверить, перейдя на сайт по адресу http:// но откроет https:// и браузер покажет Безопасное соединение и замочек.
Можно использовать анонимный режим браузера (Ctrl+Shift+N для Chrome) и отладчик (F12).