Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Wildcard SSL Let’s Encrypt из России в 2025: рабочее решение

Сайтостроение и инструменты

В 2025 году пользователи из России столкнулись с ограничениями доступа к API Let’s Encrypt. Это затруднило выпуск и обновление SSL-сертификатов через стандартные инструменты, такие как certbot или acme.sh.

Решение всё ещё существует — использовать внешний сервер и DNS-валидацию. Это подходит для получения wildcard-сертификатов, необходимых для защиты всех поддоменов.

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

Оцените статью
ctrllife.ru
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x