В 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.orgconnection 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-провайдера можно полностью автоматизировать процесс обновления сертификатов.









