Блог вопиющего в пустыне
Попробовал сделать сайт у себя на сервере на платформе Windows Server 2008R2 (веб-сервер Microsoft-IIS). В общем, получилось
Но однажды встал вопрос: перевести сайт с протокола HTTP на защищённый протокол HTTPS. В административной панели моего "битриксового" сайта и на сайте Битрикс (Учебный курс: Настройка HTTPS-соединения) приводится относительно понятный порядок действий, но как только доходит до установки сертификата на сервер, у пользователей виндовс-платформы могут возникнуть вопросы, на которые ответов там нет. Попробую прояснить отдельные нюансы на основе личного опыта.
Где взять сертификат
Я воспользовался бесплатным
Преобразовать сертификаты crt в pfx
Перед установкой сертификата на веб-сервер IIS необходимо эти три файла объединить (конвертировать) в один файл с расширением .pfx, т.к. диспетчер служб IIS поддерживает только этот формат для импорта сертификата на веб-сервер. Для конвертации потребуется утилита OpenSSL. Её можно скачать отсюда. Распакуйте её к себе на сервер и в папку с данной утилитой скопируйте полученные ранее три файла certificate.crt, certificate_ca.crt и файл с расширением .key. Зажмите SHIFT и щелкните по папке с утилитой правым кликом. В открывшемся контекстном меню, выберите пункт "Открыть окно команд":
В результате чего откроется командная строка Windows, но уже в нужной папке содержащей утилиту openssl. В открывшемся окне введите следующую команду:
Внимание! Здесь вместо namesite.ru необходимо подставить доменное имя Вашего сайта, вместо private подставить имя Вашего файла приватного ключа. Вместо certificat и certificat_ca подставить имена Ваших файлов сертификата и корневого сертификата. Например:
В этом же окне будет предложено для создаваемого pfx-файла ввести пароль, который потребуется при импортировании pfx-файла на веб-сервер (пароль при вводе не отображается). После ввода пароля и нажатия Enter будет предложено его повторить.
После повтора пароля и нажатия Enter будет создан pfx-файл (pfx сертификат) в папке с утилитой.
Установить полученный pfx сертификат на веб-сервер IIS
В Диспетчере служб IIS открыть начальную страницу Вашего сервера (не сайта), кликнуть по иконке "Сертификаты сервера". В меню "Действия" выбрать "Импортировать". В окне "Импорт сертификата" указать местонахождение pfx-файла (в папке с утилитой openssl), ввести пароль, который вы указали при создании pfx-файла, нажать ОК.
Сертификат установлен на веб-сервер
Добавить привязку сайта к протоколу HTTPS
В Диспетчере служб IIS открыть начальную страницу Вашего сайта. В меню "Действия" выбрать "Привязки". В форме "Привязки сайта" нажать "Добавить". В форме "Добавление привязки сайта" в строке "Тип" выбрать "https", в строке "ip-адрес" выбрать "Все неназначенные", в строке "Порт" ввести 443 , в строке "Сертификаты SSL" из выпадающего списка выбрать сертификат, установленный на веб-сервер Нажать ОК .
Так же необходимо в файрволе сервера открыть порт 443.
Установить 301 редирект с HTTP на HTTPS
В корне Вашего сайта в текстовом редакторе открыть файл web.config. В раздел <system.webServer> добавляем подраздел <rewrite> отвечающий за переопределение URL-адресов, и в котором содержится функция перенаправляющая http на https
<rules>
<rule name="http_https" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny" trackAllCaptures="false">
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1} redirectType="Permanent" />
</rule>
</rules>
</rewrite>
Изменить ссылки, используемые на сайте, с абсолютных на относительные
Необходимо в каждом разделе сайта все абсолютные ссылки поменять на относительные. Т.е. ссылки такого вида как http://ваш_сайт.ru/blog/o-razrabotke-sajta/ заменить на /blog/o-razrabotke-sajta/ т.е. убрать указание на протокол и домен Вашего сайта. В файле robots.txt и всех файлах семейства sitemap.xml, в строках содержащих URL-ы Вашего сайта, исправить протокол с http на https.
Оповестить поисковики об изменениях
Добавить HTTPS-версию сайта в панель для вебмастеров Яндекс Вебмастера и Google Search Console
P.S. Существенное дополнение
Не продлил вовремя сертификат. Проделал перечисленные в разделе Блог\О разработке сайта\Проверка владельца домена при получении Free SSL Certificate для веб-сервера IIS манипуляции, т.е. - скачал, сконвертировал, установил на сервер. Но поисковики по-прежнему не открывали сайт по протоколу https. Только когда в Диспетчере шлюза удаленных рабочих столов в свойствах на вкладке Сертификаты SSL сделал Импорт сертификата, только тогда сайт стал открываться. Вот каким боком Диспетчер шлюза удаленных рабочих столов влияет на работу сайта по протоколу https?
- Комментарии




