В этой статье мы рассмотрим процесс установки бесплатного сертификата Let’s Encrypt на веб-сайт, который работает на веб-сервере Internet Information Services (IIS).
Для демонстрации процесса установки сертификата мы используем VPS, работающий на операционной системе Windows Server 2016. Мы уже настроили веб-сервер IIS и запустили на нем сайт. В настоящий момент доступ к сайту осуществляется через протокол HTTP.
Наша задача состоит в получении сертификата от Центра Сертификации Let’s Encrypt, установке его на веб-сервер и привязке к нашему домену. Кроме того, мы настроим перенаправление трафика с протокола HTTP на протокол HTTPS. Это означает, что при попытке подключиться к сайту по протоколу HTTP, система автоматически переключит соединение на протокол HTTPS.
Установка сертификата
Проще всего установить SSL-сертификат от Let’s Encrypt при помощи консольной утилиты Windows ACME Simple (WACS). Данная утилита осуществляет автоматический выпуск и привязку сертификата к сайту, запущенному на MS IIS. В нашем примере мы установим утилиту версии v2.2.5.1. Именно эта версия является актуальной на момент написания статьи. Для скачивания клиента WACS данной версии необходимо перейти на страницу этого релиза.
По окончании загрузки файла разархивируйте его содержимое на сервере в каталог C:\inetpub\letsencrypt\
. Затем найдите и запустите исполняемый файл wacs.exe
. В меню утилиты выберите создание сертификата с настройками по умолчанию — Create certificate (default setting)
. Для этого введите символ N
.
Далее утилита попросит выбрать веб-сайт. Если в предложенном списке находятся несколько сайтов, то можно выбрать из них один, указав его номер, либо сразу несколько, перечислив их номера через запятую. Если нужно выбрать сразу все, нажмите Enter
.
На следующем шаге утилита попросит выбрать сайт из списка выше, где можно указать номер одного или нескольких сайтов через запятую, либо выбрать все сайты при помощи символа A
.
Теперь утилита попросит подтвердить свой выбор клавишей y
или отказаться от продолжения создания сертификата клавишей n
.
На следующем этапе будет сформировано Пользовательское соглашение и нужно будет согласиться на его просмотр или отказаться от просмотра клавишами y
или n
.
Так выглядит Пользовательское соглашение.
Далее утилита спросит ваше согласие с условиями Пользовательского соглашения. Согласиться или отказаться необходимо так же при помощи y
или n
.
На следующем шаге введите адрес электронной почты, по которому можно будет связаться с вами в случае возможных осложнений, связанных с выпускаемым SSL-сертификатом.
Далее запустится процесс выпуска SSl-сертификата для вашего сайта.
По окончании процесса для выхода из меню утилиты нажмите Q
.
В результате ваш сайт станет доступен при подключении с использованием протокола HTTPS. Чтобы это проверить, просто наберите в браузере доменное имя вашего сайта в виде https://your-domain.host
, где вместо your-domain.host
укажите имя вашего веб-сайта.
Настройка HTTPS
Чтобы просмотреть установленный SSL-сертификат, запустите Диспетчер серверов и перейдите Средства
🠒 Диспетчер служб IIS
.
Далее, раскройте ветку вашего сервера, затем — ветку сайты
и на строке, соответствующей вашему веб-сайту, нажмите правую кнопку мыши. В контекстном меню выберите Изменить привязки...
Теперь в окне Привязки сайта
выберите ваш сайт с типом https
и нажмите Изменить
. В открывшемся окне в строке SSL-сертификат нажмите Вид...
Кроме того, при выпуске сертификата утилита создаёт в Планировщике заданий новое задание, которое предназначено для автоматического продления срока действия SSL-сертификата. С этой целью созданное задание ежедневно запускает команду C:\inetpub\letsencrypt\wacs.exe --renew --baseuri "https://acme-v02.api.letsencrypt.org/"
.
Ввиду того, что ваш веб-сайт теперь доступен с использованием протокола HTTPS, необходимо закрыть доступ к нему по протоколу HTTP. Другими словами, трафик HTTP нужно перенаправить на подключение по HTTPS. Для этого установите на вашем VDS модуль Microsoft URL Rewrite Module. После его инсталляции в Диспетчере служб IIS появится иконка Переопределение URL-адресов
.
Для создания нового правила перенаправления трафика откройте данную иконку. В разделе Правила для входящего трафика
нажмите правую кнопку мыши и выберите Добавить правила...
Далее выберите Пустое правило
и нажмите ОК
. В поле Имя:
укажите название создаваемого правила, например, Перенаправление HTTP-трафика
. Теперь, в строке Запрошенный URL-адрес
выберите Соответствует шаблону
, а в поле Шаблон:
введите (.*)
. В разделе Условия
значение строки Логическая группировка:
установите в Совпадение со всеми
, затем нажмите Добавить...
В окне добавления условия укажите {HTTPS}
в строке Ввод условия:
. Также в строке Проверить, если входная строка:
выберите Соответствует шаблону
, а в строку Шаблон:
введите ^OFF$
. Затем нажмите ОК
.
Теперь перейдите в раздел Действие
и укажите Перенаправление
в строке Тип действия:
. В строке URL-адрес перенаправления:
введите https://{HTTP_HOST}/{R:1}
, в строке Тип перенаправления:
выберите Постоянное (301)
. Для завершения создания правила нажмите Применить
в правом верхнем углу окна Диспетчера служб IIS.
В результате при попытке подключиться к вашему сайту с использованием протокола HTTP, веб-сервер будет перенаправлять трафик на HTTPS, и пользователи будут попадать на ваш сайт так, как будто его доменное имя было указано с префиксом https://
.
Заключение
В завершение — несколько слов о теории. Существует три основных типа SSL-сертификатов:
- Domain Validated (DV) — подтверждают только права на домен.
- Organization Validation (OV) — подтверждают домен и его принадлежность юридическому лицу.
- Extended Validation (EV) — сертификаты с расширенной проверкой.
Сертификат, получаемый от Let’s Encrypt, который мы рассмотрели в данном руководстве, относится к первой категории.
Кроме того, сертификаты могут быть платными и бесплатными. Рассмотренный в нашей статье SSL-сертификат от Let’s Encrypt является бесплатным. Однако, это не означает, что он не имеет недостатков.
С одной стороны, бесплатный сертификат обходится пользователю дешевле, чем платный. Но, с другой стороны, у бесплатных сертификатов есть некоторые минусы. Во-первых, они имеют ограниченный срок действия и требуют перевыпуска через определённые промежутки времени. Во-вторых, платные SSL-сертификаты обеспечивают более высокий уровень доверия со стороны поисковых систем и пользователей, так как удостоверяющие центры проводят проверку владельцев доменов. И, наконец, платные сертификаты подразумевают финансовые обязательства со стороны Центра Сертификации, что означает компенсацию для пострадавших сайтов при утечке пользовательских данных.
Таким образом, выбор между бесплатными и платными сертификатами имеет свои преимущества и недостатки, которые следует учитывать при принятии решения.