DNS-валидация · Без SSH · 5 минут

Let's Encrypt без доступа к серверу — через DNS-валидацию

Стандартный путь Let's Encrypt подразумевает что у вас есть SSH к серверу и можно положить файл в директорию сайта. Но что если доступа нет? Например, домен зарегистрирован у одного регистратора, а сайт хостится у другого — или вы вообще ещё не переехали на сервер. Решение есть.

Выпустить через DNS-валидацию Нужен только доступ к настройкам DNS вашего домена.
Выпустить SSL →

Когда нужен SSL без доступа к серверу

1. Сайт не на вашем сервере

Хостинг у провайдера, который не даёт SSH или панель не поддерживает Let's Encrypt напрямую. Сервер «чужой», но домен ваш — DNS под вашим контролем.

2. Сайт ещё не запущен, но сертификат уже нужен

Готовите переезд на новый сервер — хотите выпустить серт заранее, чтобы в момент переключения DNS не было «небезопасное соединение». Сервер ещё не готов, а серт уже нужен.

3. Сертификат на CDN или внешний сервис

Вам нужен файл сертификата — потому что внешний сервис (CDN, балансировщик, кастомное API-окружение) требует его загрузить через свой интерфейс. К физическому серверу с веб-сайтом доступа нет — он у клиента, провайдера или вообще не существует.

4. Wildcard для всех поддоменов

Wildcard-сертификаты в принципе нельзя получить через файл на сервере (HTTP-01). Let's Encrypt разрешает их только через DNS — это требование протокола. Подробнее — страница про wildcard.

Главная идея DNS-валидации: Let's Encrypt проверяет владение доменом не через файл на сайте, а через специальную TXT-запись в DNS. Раз вы можете изменить DNS — значит вы владеете доменом. Этого достаточно для выдачи сертификата.

Как это работает

  1. Открываете /ssl в браузере. Никакой установки, ничего скачивать не надо.
  2. Вводите домен и email. Email нужен для критичных уведомлений от Let's Encrypt и (опционально) для напоминания за 7 дней до истечения.
  3. Выбираете метод DNS. Мы покажем вам какую TXT-запись добавить:
    • Имя: _acme-challenge.example.com
    • Тип: TXT
    • Значение: длинная строка, сгенерированная Let's Encrypt
  4. Добавляете запись у вашего DNS-провайдера. Это делается в личном кабинете регистратора домена (REG.RU, GoDaddy, Cloudflare, и т.д.). Обычно занимает 30 секунд.
  5. Ждёте 1-10 минут пока запись разойдётся по миру. Можно проверить на dnschecker.org.
  6. Нажимаете «Проверить и выпустить». Let's Encrypt проверяет TXT-запись, и если ОК — выдаёт сертификат.
  7. Скачиваете 4 файла. Дальше используете их где угодно — в nginx, в панели хостинга, на CDN, на балансировщике.

Где найти настройки DNS у популярных регистраторов

Если не находите — поищите в справке вашего регистратора «как добавить TXT-запись». Это базовая операция, у всех есть.

Что вы получаете на выходе

Те же 4 файла сертификата:

Загружаете в админку хостинга / на CDN / в кабинет балансировщика — и SSL работает.

Что не работает через DNS-валидацию

Часто задаваемые вопросы

Можно ли удалить TXT-запись после получения сертификата?

Да. Запись нужна только в момент валидации. После того как сертификат получен — можно удалять. При обновлении (через 90 дней) её придётся добавить снова, но с новым значением.

Что если у меня запись блокирует CAA?

Иногда в DNS домена есть CAA-запись которая ограничивает кто может выпускать сертификаты. Если в ней не указан letsencrypt.org — Let's Encrypt откажет в выпуске. Решение: добавить запись CAA 0 issue "letsencrypt.org" или удалить ограничивающую CAA.

Можно ли использовать тот же сертификат на нескольких серверах?

Да. Сертификат привязан к домену, а не к серверу. Один файл можно установить на несколько машин — главное хранить приватный ключ в секрете.

А если у меня нет email Let's Encrypt — что подойдёт?

Email просто нужен один раз — для регистрации в Let's Encrypt и для критичных уведомлений (например, отзыв сертификата). Это не email вашего домена, а ваш личный. Подойдёт обычный.

Готовы выпустить SSL через DNS? Нужны только домен, доступ к настройкам DNS и email.
Выпустить SSL →