ispmanager 6 lite, pro, host

Интеграция с 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. Выберите SSL-сертификаты в открывшейся форме и нажмите на кнопку Ограничить функции на панели инструментов или в контекстном меню.
  4. В открывшейся форме выберите Let’s Encrypt и Журнал и нажмите Вкл.

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

Есть два способа получения 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. В Основном меню выберите Управление DNS.
  2. На открывшейся форме выберите сайт и нажмите на кнопку DNS записи.
Обратите внимание!
Если вы используете внешний DNS-сервер, то процесс выдачи будет заморожен на 30 минут, а в интерфейсе в левом углу около глобального поиска и в разделе Уведомления Мониторинг и журналы) будет показано уведомление с информацией, какие записи необходимо прописать на внешнем сервере для получения сертификатов. Проверка на наличие записей в глобальной сети выполняется на протяжении суток каждые 30 минут после получения первого уведомления. Как только необходимые записи станут доступны, сертификаты будут успешно получены. 

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

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

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

Поддержка wildcard

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

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

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

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

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

Логирование

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

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

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