3.2.7 Выпуск и подключение сертификата Let's Encrypt

Сертификаты Lets Encrypt

Хостинг TheHost официально поддерживает сертификаты Let’s Encrypt. Сертификаты Let’s Encrypt являются бесплатными, однако при этом функционально сопоставимы с классическими коммерческими сертификатами центров сертификации Sectigo/Comodo, RapidSSL, Thawte, GeoTrust и др. Сертификаты Let’s Encrypt обладают следующими особенностями:

  • Сертификаты данного типа являются сертификатами с проверкой домена, поэтому для их выдачи обязательно чтобы доменное имя, для которого формируется сертификат, было активным и ссылалось основной А-записью на сервер, на котором формируется сертификат. Для не зарегистрированного, не активного или направленного на другой сервер доменного имени выдать сертификат Let’s Encrypt не является возможным.
  • Срок действия SSL Let’s Encrypt: 90 дней с момента выпуска.
  • Продлить сертификат Let’s Encrypt возможно только по прошествию 2-ух месяцев с момента выдачи.
  • Для продления сертификатов Let’s Encrypt необходимо выпускать новый сертификат в панели управления хостингом.
  • На нашем хостинге существует возможность включить функцию автопродления для сертификатов Let’s Encrypt.

Пошаговая инструкция по выпуску и подключению SSL Let’s Encrypt

Учтите: действия, описанные в этой инструкции, необходимо выполнять в панели управления Вашего хостинга. В личном кабинете подобный функционал отсутствует. Подробнее о том, что такое панель управления хостингом и как получить к ней доступ Вы можете узнать по ссылке.

В целом, для выпуска сертификата Let’s Encrypt достаточно зайти в панель управления хостингом и выполнить несколько простых действий:

Инструкция по установке сертификатов Lets Encrypt

Далее необходимо установить сертификат для нужного Вам сайта. Для этого в разделе World Wide Web -> WWW домены открываем его свойства, включив и выбрав новый сертификат:

Настройка WWW домена

Инструкция: установка SSL Let’s Encrypt более детально, в пошаговом формате

1. В панели управления хостингом открываем раздел SSL сертификаты:

Список SSL-сертификатов

2. В верхнем меню нажимаем на кнопку Let’s Encrypt:

Выпуск сертификата Lets Encrypt

3. В открывшемся окне выбираем сайт, для которого необходимо выпустить сертификат Let’s Encrypt:

Выбор сайта для сертификата

4. Для подтверждения операции выпуска сертификата нажимаем Ок:

Подтверждение операции выпуска сертификата

5. После этого на протяжении 20-30 секунд в списке SSL-сертификатов должен появиться новый сертификат Let’s Encrypt:

Новый сертификат Let's Encrypt

6. Далее необходимо установить сертификат для нужного Вам сайта. Для этого в разделе World Wide Web -> WWW домены открываем его свойства, включив и выбрав новый сертификат:

Настройка WWW домена

Готово! Ваш сертификат активен и покдлючен к сайту!

Активация принудительного редиректа с HTTP на HTTPS

Сертификат установлен, подключен и активен. Как принудительно перенаправить всех посетителей с с http:// на https://?

Существует два варианта активации такого редиректа со стороны веб-сервера.

1. Стандартный, возможный для всех наших серверов хостинга и новых шаблонов ОС с панелью ISPManager:

Дополнительно: активация принудителього редиректа с http:// на https:// в панели ISPManager.

На всех shared-хостинг серверах это можно сделать в панели управления ISP. Для этого в панели нужно перейти в раздел WWW домены, выделить нужный домен и нажать кнопку Изменить. Далее нужно в свойствах отметить галочкой пункт Только SSL.

Как сделать редирект на https

2. Ручной, при использовании виртуальных и выделенных серверов с старыми шаблонами ОС (ниже Ubuntu_18+ispmgr):

Дополнительно: активация принудителього редиректа с http:// на https:// с помощью конфига Nginx.

Необходимо в конфигурации Nginx для нужного WWW-домена добавить следующий блок:

/etc/nginx/nginx.conf/
    if ($ssl_protocol = "") {
      rewrite ^ https://$server_name$request_uri? permanent;
    }

Пример, как это должно быть в файле конфигурации /etc/nginx/nginx.conf/:

/etc/nginx/nginx.conf/
  server {
    server_name example.com www.example.com;
    listen 91.234.32.170;
    listen 91.234.32.170:443 ssl;
    disable_symlinks if_not_owner from=$root_path;
    set $root_path /var/www/exampleuser/data/www/example.com;
  if ($ssl_protocol = "") {
    rewrite ^ https://$server_name$request_uri? permanent;
 }
  location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
    root $root_path;
    access_log /var/www/nginx-logs/exampleuser isp;
    access_log /var/www/httpd-logs/example.com.access.log ;
    error_page 404 = @fallback;
 }
  location / {
    proxy_pass http://91.234.32.170:81;
    ....

Также указанное можно сделать на VPS под root в разделе WWW-домены, выбрав нужный сайт, щелкнуть справа вверху Конфиг, и, во вкладке Nginx добавить нужный код для сайта.

Автоматическое продление сертификатов Let’s Encrypt

На нашем хостинге также доступен функционал автоматического продления SSL-сертификтов Let’s Encrypt.

Необходимо во вкладке SSL сертификаты в панели управления хостингом найти сертификат, который отвечает следующим требованиям:

  • это сертификат Let’s Encrypt;
  • данный сертификат в настоящее время активен и подключен к домену.

После этого необходимо выбрать такой сертификат кнопкой мыши и нажать на кнопку Информация в верхнем правом углу интерфейса панели. В результате откроется окно свойств сертификата, в котором Вы сможете найти специальную опцию Автопродление:

Автопродление Lets Encrypt

Включив эту опцию и нажав Ok Вы активируете автопродление для этого и последующих SSL Let’s Encrypt для одного конкретного домена.

Дополнительно: как работает автопродление?

Примерно раз в час скрипт проверяет все активные сертификаты, помеченные этой галочкой, и автоматически продлевает те из них, срок действия которых истекает ранее, чем через 30 суток (или уже истек).

В случае успешного продления, новый сертификат заменит собой старый, а старый будет сохранен с тем же именем и расширением .previous, что в переводе означает .предыдущий.

Особенности эксплуатации и возможные ошибки

При формировании сертификатов Let’s Encrypt у пользователей в корневых папках автоматически создаются специальные директории:

  • Папка lets_encrypt в корне хостинг-аккаунта. Служебная папка размером около 300Кб, которая обеспечивает техническую возможность выдавать сертификаты Let’s Encrypt пользователю. Удалять её не желательно, однако она автоматически восстановится при повторной выдаче или продлении сертификата;

  • Папка .well-known/acme-challenge в корне сайта, для которого был выпущен Let’s Encrypt сертификат. Данный каталог размером до 10Кб необходим для проведения проверки собственности/принадлежности сайта. Мы не рекомендуем его удалять, однако, как и предыдущий каталог, система автоматически восстановит эту папку при повторной выдаче или продлении сертификата.

Также имеются ограничения по выпуску SSL-сертификатов - более подробно это описано в технической документации сертификационного центра Let’s Encrypt.

Если возникают ошибки при выпуске SSL, в первую очередь можно самостоятельно удалить указанные папки:

  • lets_encrypt в корне Вашего хостинг-аккаунта;
  • .well-known/acme-challenge в корне директории Вашего сайта.

И затем повторить попытку выпуска сертификата за вышеописанной инструкцией.