Интеграция с 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 разрешён:
- В разделе "Доступ к функциям":
- В настройках прав пользователя:
- В Основном меню выберите Учётные записи.
- В раскрывшемся меню выберите Пользователи.
- Выберите пользователя и нажмите на кнопку Права.
- На форме Права пользователя дважды нажмите на SSL-сертификаты.
- Отметьте чекбоксы 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 дней.
Обновление сертификата вручную
Так же можно запустить обновление сертификата вручную. Для этого имеется функция 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-записи будут автоматически добавлены. Для просмотра:
- В Основном меню выберите Домены.
- В раскрывшемся меню выберите Доменные имена
- На открывшейся форме выберите сайт и нажмите на кнопку Управлять DNS записями.
Если в течение суток после заказа сертификата проверка владения доменом не завершится успехом, то попытки выпустить сертификат будут прекращены.
Почтовые домены
Для получения сертификата на почтовый домен необходимо при создании/редактировании почтового домена выбрать Новый Let's Encrypt сертификат. Далее необходимо ввести псевдонимы, которые использует выбранный домен для работы почты (pop.your_domain.com, mail.your_domain.com, smtp.your_domain.com или др). Если в панели отсутствует одноименный веб-домен, то процедура проверки будет принудительно проводиться через DNS
Поддержка wildcard
В модуле реализована поддержка wildcard-сертификатов. Для получения такого сертификата, на форме заказа нужно включить чекбокс Wildcard.
Нестандартные ситуации
Может возникнуть нестандартная ситуация, когда веб-домен размещен на более чем один узел кластера. В случае, если у какого-либо из этих узлов отсутствует веб-роль, он не сможет участвовать в процедуре проверки по HTTP. Пути решения проблемы:
- Использовать DNS проверку
- Через некоторое время, после нескольких провалов, сервер ACME путем перебора успешно найдет подходящие адреса для HTTP проверки.
Логирование
Лог взаимодействия ISPmanager с Let's Encrypt записывается в файл /usr/local/mgr5/var/letsencrypt.log.
По умолчанию установлен недостаточный уровень логирования и информация в файл не записывается. Чтобы система писала лог:
- В Основном меню выберите Настройки.
- В раскрывшемся списке выберите Настройка логирования.
- Выделите модули ssl, rpc, core_modules и нажмите на кнопку Максимальный.