Заметки сисадмина » Настройка HTTPS-соединения для сайта на веб-сервере IIS

Заметки сисадмина о интересных вещах из мира IT, инструкции и рецензии. Настраиваем Компьютеры/Сервера/1С/SIP-телефонию в Москве

Настройка HTTPS-соединения для сайта на веб-сервере IIS

2025-01-20 · Posted in IIS, Windows Server 2008

Попробовал сделать сайт у себя на сервере на платформе Windows Server 2008R2 (веб-сервер Microsoft-IIS). В общем, получилось

Но однажды встал вопрос: перевести сайт с протокола HTTP на защищённый протокол HTTPS. В административной панели моего “битриксового” сайта и на сайте Битрикс Как только доходит до установки сертификата на сервер, у пользователей виндовс-платформы могут возникнуть вопросы, на которые ответов там нет. Попробую прояснить отдельные нюансы на основе личного опыта.

Где взять сертификат

Я воспользовался бесплатным SSL-сертификатом, который предоставляется на 1 год регистратором доменных имен, у которого я зарегистрировал доменное имя сайта. Из личного кабинета на сайте регистратора я сохранил к себе на сервер два файла: 1) сертификат в формате x509 (.PEM) (это запись сертификата в формате certificate.crt) и 2) корневой сертификат (запись в формате certificate_ca.crt). Третий файл – приватный ключ (в виде текстового файла) – мне выслали на мой почтовый ящик. Его также сохранил к себе на сервер с расширением .key (имя произвольное). Для установки сертификата на сервер необходимы именно эти три файла.

Преобразовать сертификаты crt в pfx

Перед установкой сертификата на веб-сервер IIS необходимо эти три файла объединить (конвертировать) в один файл с расширением .pfx, т.к. диспетчер служб IIS поддерживает только этот формат для импорта сертификата на веб-сервер. Для конвертации потребуется утилита OpenSSL.
Её можно скачать amd64-win64openssl-0_9_8g
Распакуйте её к себе на сервер и в папку с данной утилитой скопируйте полученные ранее три файла certificate.crt, certificate_ca.crt и файл с расширением .key. Зажмите SHIFT и щелкните по папке с утилитой правым кликом. В открывшемся контекстном меню, выберите пункт “Открыть окно команд”:

Открыть окно команд

В результате чего откроется командная строка Windows, но уже в нужной папке содержащей утилиту openssl. В открывшемся окне введите следующую команду:

Здесь вместо namesite.ru необходимо подставить доменное имя Вашего сайта, вместо private подставить имя Вашего файла приватного ключа. Вместо certificat и certificat_ca подставить имена Ваших файлов сертификата и корневого сертификата. Например:

В этом же окне будет предложено для создаваемого pfx-файла ввести пароль, который потребуется при импортировании pfx-файла на веб-сервер (пароль при вводе не отображается). После ввода пароля и нажатия Enter будет предложено его повторить.

OpenSSL_cmd

После повтора пароля и нажатия Enter будет создан pfx-файл (pfx сертификат) в папке с утилитой.

Преобразовать сертификаты crt в pfx для старых версий Windows server 2008/2008R2/2012/2012R2

Так же стоит помнить, что в случае IIS на Windows server 2008/2008R2/2012/2012R2 следует генерировать .pfx-файл с дополнительными ключами управления криптографией, иначе сервер такой .pfx-файл не примет и будет ругаться на ошибки, создавая ложное ощущение, что введён неверный пароль.

Установить полученный pfx сертификат  на веб-сервер IIS

В Диспетчере служб IIS открыть начальную страницу Вашего сервера (не сайта), кликнуть по иконке “Сертификаты сервера”. В меню “Действия” выбрать “Импортировать”. В окне “Импорт сертификата” указать местонахождение pfx-файла (в папке с утилитой openssl), ввести пароль, который вы указали при создании pfx-файла, нажать ОК.

Сертификаты сервера

Сертификаты сервера. Импорт

Сертификат установлен на веб-сервер

Добавить привязку сайта к протоколу HTTPS

В Диспетчере служб IIS открыть начальную страницу Вашего сайта. В меню “Действия” выбрать “Привязки”. В форме “Привязки сайта” нажать “Добавить”. В форме “Добавление привязки сайта” в строке “Тип” выбрать “https”, в строке “ip-адрес” выбрать “Все неназначенные”, в строке “Порт” ввести 443 , в строке “Сертификаты SSL” из выпадающего списка выбрать сертификат, установленный на веб-сервер Нажать ОК .

Добавить привязку к https

Так же необходимо в файрволе сервера открыть порт 443.

Установить 301 редирект с HTTP на HTTPS

В корне Вашего сайта в текстовом редакторе открыть файл web.config. В раздел <system.webServer> добавляем подраздел <rewrite> отвечающий за переопределение URL-адресов, и в котором содержится функция перенаправляющая http на https

Изменить ссылки, используемые на сайте, с абсолютных на относительные

Необходимо в каждом разделе сайта все абсолютные ссылки поменять на относительные. Т.е. ссылки такого вида как http://ваш_сайт.ru/blog/o-razrabotke-sajta/ заменить на /blog/o-razrabotke-sajta/ т.е. убрать указание на протокол и домен Вашего сайта. В файле robots.txt и всех файлах семейства sitemap.xml, в строках содержащих URL-ы Вашего сайта, исправить протокол с http на https.

Оповестить поисковики об изменениях

Добавить HTTPS-версию сайта в панель для вебмастеров Яндекс Вебмастера и Google Search Console

Существенное дополнение

Не продлил вовремя сертификат. Проделал перечисленные манипуляции, т.е. – скачал, сконвертировал, установил на сервер. Но поисковики по-прежнему не открывали сайт по протоколу https. Только когда в Диспетчере шлюза удаленных рабочих столов в свойствах на вкладке Сертификаты SSL сделал Импорт сертификата, только тогда сайт стал открываться. Также есть еще конвертер SSL digicertutil но его работу не проверял…

One Response

  1. так же стоит помнить, что в случае IIS на Windows server 2008/2008R2/2012/2012R2
    следует генерировать .pfx-файл с дополнительными ключами управления криптографией, иначе сервер такой .pfx-файл не примет и будет ругаться на ошибки, создавая ложное ощущение, что введён неверный пароль.
    openssl.exe pkcs12 -export -out certs-Win8.pfx -inkey private.key -in public.crt -certfile public_ca.pem -certpbe PBE-SHA1-3DES -keypbe PBE-SHA1-3DES -nomac

Leave a Reply