Интеграция ISPmanager с Let’s Encrypt

Материал из ISPWiki
Перейти к: навигация, поиск

Введение

Let’s Encrypt – некоммерческий удостоверяющий центр, который предоставляет бесплатные X.509 сертификаты для TLS шифрования с помощью автоматизированного процесса, направленного на замену текущего сложного процесса ручного создания, проверки, подписи, установки и обновления сертификатов для защищённых веб-сайтов.

Официальный сайт Let’s Encrypt.

Страница модуля интеграции Let’s Encrypt на сайте ISPsystem.


Обращаем ваше внимание, Let’s Encrypt имеет следующие ограничения:

  • Можно заказать только 5 сертификатов в неделю (TLD, включая его поддомены)
  • Не поддерживаются wildcard сертификаты
  • Срок действия Let’s Encrypt сертификата 3 месяца (каждые 3 месяца ISPmanager выполняет перевыпуск Let’s Encrypt сертификатов)

Кроме того существуют и другие ограничения. Подробнее в документации об ограничениях.


Данный функционал доступен с версии ISPmanager 5.65.

Для установки плагина из-под учетной записи root пройдите Модули->Интеграция.

После установки плагина Let’s Encrypt в ISPmanager Вы сможете получить действующий самообновляющийся SSL-сертификат для своего домена.

Для этого Вам понадобится пользователь, имеющий право пользоваться SSL, и действующее доменное имя, доступное для мировых ДНС.

После установки плагина в разделе WWW->SSL-сертификаты появится дополнительная функциональность: кнопки Let's Encrypt и Let’s Encrypt Журнал, при нажатии на первую вы приступите к процессу получения сертификата.

Вторая активируется, если у Вас в списке сертификатов уже имеется Let's Encrypt сертификат и перенаправляет Вас к журналу событий, где отображается все, что происходит с ним.

Letsencrypt toolbar.png

Создание сертификата

Есть два способа получения Let's Encrypt сертификата:

  • Из раздела WWW->SSL-сертификаты.

Нажимаем на кнопку Let's Encrypt и в появившемся окне нужно заполнить данные для генерации сертификата

Letsencrypt.png

Выбираем пользователя (если создание сертификата происходит из-под root) и домен.

Далее указываем свои данные (Код страны, город, e-почту etc.) и длину приватного ключа для сертификата (влияет на криптоустойчивость).


  • Вместе с новым www-доменом

При создании нового домена, если выбран пункт Защищенное соединение (SSL), появится дополнительная опция для выбора сертификата -- Let's Encrypt сертификат. После заполнения всей необходимой информации для создания домена произойдет перенаправление на форму создания нового Let's Encrypt сертификата.

Обновление сертификата

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

И запускаться оно (обновление) будет если срок действия сертификата прекращается через семь или менее дней.

Так же можно запустить обновление сертификата вручную. Для этого имеется функция letsencrypt.check.update. В случае, если Вы хотите запустить преждевременно обновление необходимо вызвать эту функцию через утилиту mgrctl параметрами


force_update=yes, cert_name=%cert name%, user_name=%user name%

Важно! Количество сертификатов для домена за короткий промежуток времени ограничено, поэтому не стоит злоупотреблять ручным обновлением.

Технология получения сертификата

В начале создается самоподписанный сертификат с указанными параметрами, затем, раз в пять минут, предпринимается попытка получения сертификата.

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

Можно запустить вручную letsencrypt.periodic через утилиту mgrctl.

В случае, если сертификат не удается получить в течение двадцати четырех часов, попытки прекращаются, и создаются уведомления для пользователя и администраторов с сообщением о провале получения сертификата.

В случае успешного получения самоподписанный сертификат меняется на Let's Encrypt сертификат. Пользователь и администратор получают уведомления об успешном завершении получения.

Порядок запросов

  • Создание учетной записи
  • Авторизация
  • Запрос на проверку владения доменом (для проверки владением доменом на сервер пользователя добавляется токен -- файл содержащий данные, полученные при аутентификации. путь до файла .well-known/acme-challenge/%token_name%)
  • Ожидание подтверждения успешного завершения проверки
  • Получение сертификата
 Изменение: Начиная с версии ISPmanager 5.84.0 процесс подтверждения владения доменом изменился. Теперь для каждого домена создается отдельный алиас .well-known/acme-challenge/,
 ведущий в директорию /usr/local/mgr5/www/letsencrypt. Все токены проверки будут создаваться по этому пути

DNS проверка

Мы добавляем возможность проверки владения доменом через TXT записи в доменной зоне. Для получения сертификата с DNS проверкой, при заказе сертификата просто поставьте "галочку" Проверка через DNS

Le dns check.png

Первоначально, необходимые TXT-записи будут автоматически добавлены средствами панели. Однако, если в процессе внутренней проверки выяснится, что для домена используется внешний DNS, процесс выдачи сертификата будет заморожен на 30 минут. Администратор и пользователь получат сообщения вида: Для продолжения процедуры получения сертификата Let's Encypt %имя_сертификата% добавьте TXT-записи: '%записи%' на серверах имен '%сервера_имен%'. Следующая проверка запланирована %дата_и_время_разморозки%. Будьте внимательны при добавлении TXT-записей, ошибки в имени или содержании не допускаются.

Если в течение суток после заказа сертификата проверка владения доменом не увенчается успехом то, как и в случае с проверкой через HTTP, попытки выпуска сертификата будут окончательно прекращены.

Почтовые домены

В скором времени станет доступен выпуск сертификатов Let's Encrypt для почтовых доменов. Для этого при создании\редактировании почтового домена выберите Новый Let's Encrypt сертификат. Сертификат будет заказан дополнительно на псевдонимы mail.domain.name, smtp.domain.name, pop.domain.name. Если в панели отсутствует одноименный веб-домен, то процедура проверки будет принудительно проводиться через DNS

Нестандартные ситуации

  1. В Business-версии панели может возникнуть нестандартная ситуация, когда веб-домен "резолвится" на более чем один узел кластера. В случае, если у какого-либо из этих узлов отсутствует веб-роль, он не сможет участвовать в процедуре проверки по HTTP. Пути решения проблемы:
    1. Использовать DNS проверку
    2. Просто подождать. После нескольких провалов сервер ACME, путем перебора, успешно найдет подходящие адреса для HTTP проверки.