В 2025 году пользователи из России столкнулись с ограничениями доступа к API Let’s Encrypt. Это затруднило выпуск и обновление SSL-сертификатов через стандартные инструменты, такие как certbot
или acme.sh
.
Решение всё ещё существует — использовать внешний сервер и DNS-валидацию. Это подходит для получения wildcard-сертификатов, необходимых для защиты всех поддоменов.
- Проблемы соединения с Let’s Encrypt из РФ
- Решение: внешний VPS и DNS-валидация
- Что потребуется:
- 1. Установка acme.sh на внешнем сервере
- 2. Выпуск wildcard-сертификата вручную
- Проверка TXT-записи через dig или nslookup
- 5. Завершите выпуск сертификата
- Перенос на российский сервер
- Автоматизация продления
- Продление через —renew
- Заключение
Проблемы соединения с Let’s Encrypt из РФ
Попытка выпустить сертификат с российских серверов может вызвать ошибки:
ReadTimeout
при подключении кacme-v02.api.letsencrypt.org
connection refused
илиSSL_ERROR_SYSCALL
- Зависание при попытке
telnet acme-v02.api.letsencrypt.org 443
- Ошибка регистрации аккаунта в
certbot
илиacme.sh
Наиболее уязвим HTTP-метод валидации (.well-known
), который полностью зависит от доступности Let’s Encrypt.
Выпуск SSL-сертификатов напрямую с российских серверов часто невозможен из-за сетевых ограничений
Решение: внешний VPS и DNS-валидация
Что потребуется:
- Доступ к VPS вне РФ (любая страна, где работает Let’s Encrypt API)
- Домены с доступом к управлению DNS (панель провайдера или API)
- Установленный
acme.sh
на внешнем сервере
1. Установка acme.sh на внешнем сервере
Подключитесь к внешнему серверу по SSH и выполните:
curl https://get.acme.sh | sh
Перезапустите сессию или выполните:
source ~/.bashrc
2. Выпуск wildcard-сертификата вручную
Выполните следующую команду, указав свой домен и email:
~/.acme.sh/acme.sh \
--issue \
-d '*.example.ru' \
--dns dns_manual \
--server https://acme-v02.api.letsencrypt.org/directory \
--accountemail your@email.com
Скрипт выведет инструкцию по созданию TXT-записи в DNS вида:
_acme-challenge.example.ru IN TXT "XXXXXXXXXXXXXX"
Добавьте запись в панели управления DNS и подождите пока она появится.
Проверка TXT-записи через dig или nslookup
Чтобы убедиться, что TXT-запись применена и доступна, выполните одну из следующих команд:
Проверка через dig:
dig TXT _acme-challenge.example.ru +short
Проверка через nslookup:
nslookup -type=TXT _acme-challenge.example.ru
Ответ должен содержать строку с токеном в кавычках — это значит, что DNS-валидация пройдёт успешно
5. Завершите выпуск сертификата
Когда запись появится, запустите команду:
~/.acme.sh/acme.sh --renew -d '*.example.ru'
После успешного завершения сертификаты будут сохранены в:
~/.acme.sh/*.example.ru/fullchain.cer
~/.acme.sh/*.example.ru/*.key
Перенос на российский сервер
scp ~/.acme.sh/*.example.ru/*.cer user@ru-server:/etc/ssl/certs/ scp ~/.acme.sh/*.example.ru/*.key user@ru-server:/etc/ssl/private/
Автоматизация продления
При использовании dns manual
обновление сертификатов требует повторного добавления TXT-записей. Чтобы автоматизировать процесс, подключите API DNS-провайдера (если поддерживается).
Пример для Cloudflare:
export CF_Token="your_token"
export CF_Account_ID="your_account_id"
acme.sh --issue --dns dns_cf -d '*.example.ru'
Интеграции доступны для большинства популярных DNS-провайдеров: Cloudflare, Reg.ru, Yandex Cloud DNS и др.
Продление через —renew
Если сертификат уже был получен ранее и сохранён в конфигурации ~/.acme.sh
, его можно продлить с помощью:
~/.acme.sh/acme.sh --renew -d '*.example.ru'
Если используется ручной DNS, придётся снова добавить TXT-запись. При наличии автоматической интеграции через API — всё выполнится без вмешательства.
Флаг --renew
используется только при продлении существующего сертификата, не при первом выпуске
Заключение
Несмотря на блокировки, получить Wildcard SSL-сертификат Let’s Encrypt из России всё ещё возможно. Достаточно использовать внешний VPS и DNS-валидацию через acme.sh
. При наличии доступа к API DNS-провайдера можно полностью автоматизировать процесс обновления сертификатов.