Короткий практический план по выпуску, продлению и развёртыванию 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 шага, которые можно сделать на этой неделе:
- Запустить test‑режим Certbot или acme.sh и выполнить dry‑run для существующего домена.
- Настроить автоматическое renew с deploy‑hook на reload веб‑сервера и проверить работу на нерабочее время.
- Настроить простое уведомление о сроке действия сертификата (email или Telegram) и задокументировать процесс восстановления доступа к DNS‑API.