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

ACME для certbot, acme.sh и Caddy

Как сервер сам выпускает и обновляет сертификат: ACME-сервер ZRAZU для платных сертификатов и acme-dns для бесплатных, включая wildcard.

ACME — это протокол, которым certbot, acme.sh, lego, Caddy, Traefik и cert-manager сами выпускают и продлевают сертификаты. В ZRAZU есть два способа его использовать. Оба настраиваются в кабинете: «SSL-сертификаты» → «ACME для certbot» (кабинет). Создавать записи могут владелец, администратор и техник.

Что нужноКакой способ
Платный сертификат из подписки ZRAZU, который обновляется самACME-сервер ZRAZU
Бесплатный Let’s Encrypt, особенно wildcardacme-dns
Свой хостинг без certbotСсылка для сервера

В обоих случаях закрытый ключ остаётся на вашем сервере.

ACME-сервер ZRAZU

Это наш сервер сертификатов для платной подписки. Адрес (Directory): https://api.zrazu.com/acme/directory. Клиент регистрируется на нём через привязку EAB.

  1. В блоке «Свой ACME-сервер для платных сертификатов» введите название привязки, например имя сервера, и нажмите «Создать».
  2. Сохраните показанные Directory, kid и ключ HMAC. Ключ показывается один раз, его никто не восстановит.
  3. В мастере «Настройка под ваш сервер» выберите программу (nginx с certbot, acme.sh, Caddy, Traefik, Kubernetes cert-manager, win-acme для IIS) и домен. Кабинет покажет готовые команды.
  4. Зарегистрируйте клиент в течение 7 дней, иначе привязка потеряет силу. Для certbot это выглядит так:
certbot register --server https://api.zrazu.com/acme/directory \
  --eab-kid <kid> --eab-hmac-key <ключ HMAC> --agree-tos -m you@example.com

Привязка бывает личная (действует, пока вы в организации и можете перевыпускать сертификаты) и организации (для сервера, который переживёт изменения в команде; создают владелец и администратор). Выключить привязку можно в списке: выпущенные сертификаты остаются.

Как ведёт себя ACME-сервер:

  • Сначала ищет оплаченную действующую подписку, имена которой покрывают заказ. Перевыпуск в рамках подписки без доплаты.
  • Первый выпуск подписки нужно сделать в кабинете: перевыпускать пока нечего, а покупать дважды нельзя.
  • Если подписки нет, certbot может купить сертификат с баланса, но только когда вы включили «Покупать новые сертификаты с баланса» в привязке и средств хватает. В долг никогда. О каждой покупке мы пишем владельцам.
  • Домен должен быть на наших серверах имён: запись проверки мы ставим в зоне сами. Выдача занимает до нескольких минут.
  • Отзыв через ACME возможен только с причиной keyCompromise и подписью ключом самого сертификата. В остальных случаях отзывайте в кабинете (Перевыпуск и отзыв).

О каждом перевыпуске, покупке и отзыве мы отправляем письмо владельцам.

acme-dns: бесплатные сертификаты через DNS

Подходит для Let’s Encrypt через certbot, acme.sh, lego и Caddy с обычным плагином acme-dns. Одна запись покрывает и домен, и *.домен, так что это путь для wildcard. Ключ от всей зоны не нужен.

  1. В блоке «Новая учётная запись» введите домен. По желанию укажите разрешённые IP-адреса или сети через запятую.
  2. Нажмите «Создать» и сохраните пароль. Его показывают один раз.
  3. Добавьте CNAME _acme-challenge.домен, ведущий в зону ZRAZU. Если домен на наших серверах имён или в вашем Cloudflare с ключом на правки, нажмите «Добавить CNAME» (или «Поставить CNAME в Cloudflare»). Иначе добавьте запись у своего DNS-провайдера.
  4. Скопируйте из кабинета файл acmedns.json или команды для вашего клиента и выпустите сертификат.

Пароль умеет только ставить TXT-проверку для своего имени. Менять зону, домен или баланс он не может. Запись без единого обновления за 30 дней или без обновлений больше года мы удаляем сами вместе со своим CNAME.

Если домен за прокси Cloudflare (оранжевое облако), посетитель видит сертификат Cloudflare, а ваш сертификат нужен для сервера сайта (режим Full strict).

Если не получилось

  • ACME в этой среде выключен. Кабинет показывает такую надпись, если функция временно недоступна. Напишите в поддержку.
  • «дочекайтеся першого випуску». Подписку ещё не выпускали: сделайте первый выпуск в кабинете.
  • Выдача зависла. Проверьте, что домен на серверах имён ZRAZU.
  • Покупка не сработала. Проверьте, что покупка включена в привязке, на балансе хватает средств, а у создателя привязки есть право оплаты.
  • Привязка «истекла, не использована». Ключ HMAC действует 7 дней: создайте новую привязку.
  • Wildcard через HTTP не получится. Для *. используйте проверку DNS-01 и acme-dns: для acme.sh это --dns dns_acmedns.
  • Пароль acme-dns потеряли. Удалите учётную запись и создайте новую.

Эта страница в Markdown