Автоматизация SSL‑сертификатов на белорусском хостинге: от Let’s Encrypt до wildcard

Короткий практический план по выпуску, продлению и развёртыванию SSL для сайтов и сервисов на белорусском VPS или хостинге. Объясню, зачем автоматизация нужна бизнесу из Минска, Гомеля, Гродно и других городов, какие инструменты выбрать и как избежать простых ошибок.

Let’s Encrypt для одного сайта: быстро и надёжно

Сценарий: небольшое кафе в Мозыре запустило сайт‑меню и хочет HTTPS без больших затрат. Владелец не хочет вручную обновлять сертификаты каждые 90 дней.

Как сделать

  • Установите Certbot на VPS (пакет для вашей версии Debian/Ubuntu или Snap).
  • Выпустите тестовый сертификат: certbot certonly --webroot -w /var/www/site -d example.by --staging, проверьте доступность /.well-known/acme‑challenge/.
  • После проверки запустите выпуск в боевом режиме и настройте systemd timer или cron для автоматического renew: certbot renew --quiet.
  • Добавьте команду перезагрузки веб‑сервера в hook: --deploy-hook "systemctl reload nginx".

Wildcard‑сертификаты для поддоменов: DNS‑01 и безопасность ключей

Сценарий: интернет‑магазин в Минске использует поддомены shop.example.by, admin.example.by и хочет единый сертификат для всех.

Как сделать

  • Выберите клиент ACME с поддержкой DNS‑01 (acme.sh или Certbot с DNS‑плагином вашего провайдера DNS).
  • Получите API‑ключ у регистратора или хостинг‑панели и храните его в защищённом файле с правами 600, не кладите в репозиторий.
  • Настройте автоматическое обновление: скрипт запускает обновление через cron и пишет логи в /var/log/letsencrypt/.
  • Проверьте запись DNS после выпуска: dig TXT _acme-challenge.example.by.

Деплой сертификатов без простоя: плавная перезагрузка сервисов

Сценарий: салон красоты в Гомеле использует систему онлайн‑бронирования. Нельзя допускать простоя при обновлении сертификата в часы работы.

Как сделать

  • Используйте reload вместо restart: systemctl reload nginx или nginx -s reload. Это применит новый сертификат без закрытия соединений.
  • Если у вас несколько бэкендов, настройте reverse proxy с горячей перезагрузкой конфигураций или используйте socket activation для сервисов.
  • Проверьте процедуру на тестовом окружении. Описанные подходы помогают совместить автоматизацию сертификатов с Zero‑downtime деплоймент на белорусском VPS.

Защита, мониторинг и требования TLS

Сценарий: небольшой магазин в Барановичах продаёт товары онлайн и хочет снизить риск блокировок и проблемы с доставляемостью платёжных виджетов из‑за старых цепочек сертификатов.

Как сделать

  • Включите TLS 1.3 и проверьте цепочку сертификатов. Поддержка новых протоколов улучшит скорость и совместимость с браузерами — подробнее о связке TLS и протоколов на HTTP/3 и QUIC на белорусском хостинге.
  • Включите OCSP stapling в nginx или Apache, чтобы ускорить проверку статуса сертификата клиентами.
  • Настройте мониторинг срока жизни сертификата: простая команда openssl s_client -connect example.by:443 -showcerts | openssl x509 -noout -enddate и уведомление по почте или в Telegram при сроке меньше 14 дней.
  • Публикуйте в конфигурации только нужные ключи и удаляйте старые версии после успешного выпуска и проверки.

Типичные ошибки

  • Не тестируют renew в staging и обнаруживают ошибку за сутки до истечения.
  • Хранят API‑ключи для DNS в публичном репозитории или с правами 644.
  • Перезапускают сервисы вместо reload и вызывают простой сайта.
  • Игнорируют OCSP stapling и получают длительные ответы от клиентов при проверке статуса.
  • Не проверяют цепочку сертификатов в мобильных приложениях и теряют платежи или авторизацию.

Полезные ссылки: HTTP/3 и QUIC на белорусском хостинге, Zero‑downtime деплоймент на белорусском VPS

3 шага, которые можно сделать на этой неделе:

  1. Запустить test‑режим Certbot или acme.sh и выполнить dry‑run для существующего домена.
  2. Настроить автоматическое renew с deploy‑hook на reload веб‑сервера и проверить работу на нерабочее время.
  3. Настроить простое уведомление о сроке действия сертификата (email или Telegram) и задокументировать процесс восстановления доступа к DNS‑API.


🗓️

Вернуться на главную →