Установка SSL сертификата в Microsoft IIS 10

В данной статье описан Импорт 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).