Skip to content
Эта страница переведена с помощью ИИ и может содержать неточности. Помогите улучшить перевод на GitHub.

SSL-сертификаты ​

Автоматически выпускает и продлевает сертификаты для веб-служб; их также можно экспортировать для другого ПО.

Возможности ​

  • Автоматический выпуск и продление по ACME DNS-01 с использованием DNS-провайдеров из раздела динамического DNS, без открытия портов 80 / 443;
  • ACME HTTP-01: DNS-провайдер не нужен, но порт 80 каждого домена должен быть доступен из интернета; wildcard не поддерживается;
  • wildcard-сертификаты и EAB (например, ZeroSSL);
  • загрузка существующего сертификата или чтение из файлов;
  • вывод в каталог: после изменения сертификата файлы записываются в указанный каталог и запускается скрипт, чтобы другие сервисы могли перезагрузиться;
  • автоматическое развёртывание: после изменения сертификат копируется в несколько локальных каталогов, отправляется по SSH на другие хосты с выполнением команды или перезапускаются Docker-контейнеры, которые его используют.

Проверка HTTP-01 ​

Выберите HTTP-01 в поле «Способ проверки» сертификата. При выпуске CA обращается к http://<домен>/.well-known/acme-challenge/<token>:

  • если веб-служба уже слушает порт 80, она отвечает сама, не затрагивая существующие сайты;
  • если порт 80 свободен, Gately временно слушает его на время выпуска и сразу закрывает после завершения;
  • если роутер пробрасывает публичный порт 80 на другой порт этого хоста, укажите этот порт в поле «Временный порт».

Домашние провайдеры нередко блокируют входящие соединения на порт 80 — в этом случае используйте DNS-01.

Вывод сертификатов ​

После включения сертификата Gately записывает .crt, .key, .pem и _issuerCertificate.crt в каталог вывода и выполняет скрипт, срабатывающий при изменении.

Автоматическое развёртывание ​

В блоке «Автоматическое развёртывание» сертификата можно добавить несколько целей развёртывания; они срабатывают после выпуска, продления или обновления сертификата:

  • Копировать в локальный каталог: сертификат записывается в каталог на этой машине, после чего локально выполняется команда «Выполнить после копирования». Можно добавить несколько каталогов, у каждого своя команда. Если файлы сертификата в каталоге удалены или изменены, следующая проверка скопирует их снова. Если Gately работает в Docker, каталог и команда находятся внутри контейнера;
  • Загрузить на SSH-хост: выберите существующее SSH-подключение из веб-терминала — используются его адрес, способ аутентификации и прокси. Файлы сертификата (<примечание>.crt, .key, .pem, _issuerCertificate.crt — как при сопоставлении сертификата, поэтому «Примечание» обязательно) записываются в «Удалённый каталог», после чего на удалённом хосте выполняется команда из поля «Выполнить после загрузки», например systemctl reload nginx; в команде доступны $certName, $certDir, $certFile, $keyFile. Файлы сначала записываются во временные с нужными правами, а затем переименовываются с заменой; права на закрытый ключ — 0600;
  • Перезапустить локальные контейнеры: после смены сертификата выбранные Docker-контейнеры перезапускаются по очереди; подходит для сервисов, которые монтируют каталог сопоставления и загружают новый сертификат только после перезапуска.

«Копировать в локальный каталог» и «Загрузить на SSH-хост» позволяют задать имена файлов сертификата (полная цепочка) и закрытого ключа, например fullchain.pem и privkey.pem. Если заданы оба, записываются только эти два файла, а примечание может быть пустым; если поля пусты, используются имена из сопоставления сертификатов. $certFile и $keyFile в команде указывают на фактически записанные файлы.

Автоматическое развёртывание не доверяет неизвестным хостам: к выбранному SSH-подключению нужно один раз подключиться в веб-терминале, чтобы сохранить ключ хоста, и только после этого сертификат будет отправляться. При ошибке развёртывание повторяется каждый час и генерируется событие «Сертификат: ошибка развёртывания», на которое можно подписаться в Центре уведомлений. Кнопка «Развернуть сейчас» на карточке сертификата игнорирует интервал повтора, сразу развёртывает сертификат на все включённые цели и показывает результат по каждой из них.

При редактировании сертификата цели, настройки которых не изменились, повторно не выполняются; после изменения удалённого каталога, команды или контейнеров развёртывание выполняется заново один раз.

Замечания по безопасности ​

Закрытые ключи хранятся в ssl.json в каталоге конфигурации. Берегите этот файл, а при добавлении в систему контроля версий убедитесь, что репозиторий закрытый.

Миграция с Lucky ​

Уже выпущенные сертификаты импортируются как есть и не запрашиваются повторно до истечения срока. Для ZeroSSL учётные данные EAB из Lucky используются для регистрации нового аккаунта ACME. Подробности см. в руководстве по миграции.

Распространяется по лицензии Apache-2.0.