Документация ispmanager 6 business

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

 

Введение

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

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

Работа с сертификатами Let's Encrypt возможна сразу после установки панели управления.

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

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

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

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

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

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

Перед созданием сертификата убедитесь, что выпуск сертификатов Let's Encrypt разрешён:

  • В разделе "Доступ к функциям":
    1. В Основном меню выберите Настройки.
    2. В раскрывшемся меню выберите Доступ к функциям.
    3. Выберите группу пользователей и нажмите на кнопку Права.
    4. На форме Права группы пользователей дважды нажмите на SSL-сертификаты.
    5. Отметьте чекбоксы Let's Encrypt и Let's Encrypt Журнал и нажмите на кнопку Вкл.
  • В настройках прав пользователя:
    1. В Основном меню выберите Учётные записи.
    2. В раскрывшемся меню выберите Пользователи.
    3. Выберите пользователя и нажмите на кнопку Права.
    4. На форме Права пользователя дважды нажмите на SSL-сертификаты.
    5. Отметьте чекбоксы Let's Encrypt и Let's Encrypt Журнал и нажмите на кнопку Вкл.

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

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

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

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

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

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

Перевыпуск сертификата будет в соответствии с установленным значением параметра LetsencryptStartUpdatePeriod, для которого по умолчанию установлено 29 дней.

Рекомендуемые значения от 7 до 29. Не рекомендуется указывать значения меньше 7 и больше 29, а так же отрицательные значения и буквы.

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

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

/usr/local/mgr5/sbin/mgrctl -m ispmgr letsencrypt.check.update force_update=yes cert_name=%cert name% user_name=%user name%
Обратите внимание!
Количество сертификатов для домена за короткий промежуток времени ограничено, поэтому не стоит злоупотреблять ручным обновлением.

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

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

В начале создается самоподписанный сертификат с указанными параметрами, затем раз в минуту предпринимается попытка получения сертификата. Вы можете задать максимальное количество запросов на сертификаты, которые панель управления будет отправлять одновременно. Для этого измените параметр LetsencryptProcessCount в конфигурационном файле ISPmanager. По умолчанию значение этого параметра равно 1.

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

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

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

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

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

  • создание учетной записи;
  • авторизация;
  • запрос на проверку владения доменом (для проверки владением доменом на сервер пользователя добавляется токен – файл, содержащий данные, полученные при аутентификации). На сервере существует глобальная зависимость .well-known/acme-challenge/, ведущая в директорию /usr/local/mgr5/www/letsencrypt. Все токены проверки будут создаваться по этому пути;
  • ожидание подтверждения успешного завершения проверки;
  • получение сертификата.

DNS проверка

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

Необходимые TXT-записи будут автоматически добавлены. Для просмотра:

  1. В Основном меню выберите Домены.
  2. В раскрывшемся меню выберите Доменные имена
  3. На открывшейся форме выберите сайт и нажмите на кнопку Управлять DNS записями.
Обратите внимание!
Если вы используете внешний DNS-сервер, то процесс выдачи будет заморожен на 30 минут, а в интерфейсе в левом углу около глобального поиска и в разделе Уведомления Состояние системы) будет показано уведомление с информацией, какие записи необходимо прописать на внешнем сервере для получения сертификатов.Проверка на наличие записей в глобальной сети выполняется на протяжении суток каждые 30 минут после получения первого уведомления.  Как только необходимые записи станут доступны, сертификаты будут успешно получены. 

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

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

Для получения сертификата на почтовый домен необходимо при создании/редактировании почтового домена выбрать Новый Let's Encrypt сертификат. Далее необходимо ввести псевдонимы, которые использует выбранный домен для работы почты (pop.your_domain.com, mail.your_domain.com, smtp.your_domain.com или др). Если в панели отсутствует одноименный веб-домен, то процедура проверки будет принудительно проводиться через DNS

Поддержка wildcard

В модуле реализована поддержка wildcard-сертификатов. Для получения такого сертификата, на форме заказа нужно включить чекбокс Wildcard.

Обратите внимание!
Проверка владения доменом при выпуске wildcard-сертификата осуществляется исключительно по DNS.Псевдоним вида *.доменное.имя, указанный вручную, будет проигнорирован при заказе во избежание возможных конфликтов при проверках.

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

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

  1. Использовать DNS проверку
  2. Через некоторое время, после нескольких провалов, сервер ACME путем перебора успешно найдет подходящие адреса для HTTP проверки.

Логирование

Лог взаимодействия ISPmanager с Let's Encrypt записывается в файл /usr/local/mgr5/var/letsencrypt.log

По умолчанию установлен недостаточный уровень логирования и информация в файл не записывается. Чтобы система писала лог:

  1. В Основном меню выберите Настройки.
  2. В раскрывшемся списке выберите Настройка логирования.
  3. Выделите модули  ssl, rpc, core_modules и нажмите на кнопку Максимальный