IT заметки по программированию
IT заметки по программированию
IT заметки по программированию
IT заметки по программированию

Настроить Nginx + docker-mailserver + certbot —nginx для безопасной работы с SAN-сертификатами


🎯 Цель

  • Один сервер (один IP)

  • docker-mailserver обрабатывает почту

  • Nginx на хосте обслуживает порт 80 и 443

  • Certbot использует --nginx для выдачи и продления SAN-сертификатов

  • Сертификаты монтируются в docker-mailserver


📦 Архитектура

[ Интернет ] │

┌────────────┐
│ NGINX │ ← certbot работает здесь
└────────────┘
│ (reverse proxy, только 80/443)

┌──────────────────────┐
│ docker-mailserver 🐳 │ ← монтирует SSL-сертификаты от certbot
└──────────────────────┘

Шаги настройки


1. ✅ Установи Nginx на хост

sudo apt update
sudo apt install nginx

Проверь, что он слушает 80 и 443:

sudo ss -tuln | grep ‘:80\|:443’

 

2. ⚙️ Настрой nginx для почтовых доменов

Создай файл /etc/nginx/sites-available/mail:

Активируй сайт:
3. 🧪 Выдай сертификат через certbot --nginx
 

После этого сертификаты появятся здесь:

И они содержат оба SAN-домена.

Проверь:

4. 📂 Пробрось сертификаты в docker-mailserver

Обнови docker-compose.yml:

В .env (mailserver.env):
5. 🚀 Перезапусти docker-mailserver

6. 🔁 Настрой автообновление сертификатов

Certbot создаёт cron или systemd таймер автоматически при установке. Убедись:

Сертификаты будут обновляться сами, без остановки docker-mailserver, потому что nginx обслуживает 80/443.


7. 🔁 (опционально) Добавь deploy-hook на перезапуск контейнера

Чтобы docker-mailserver подхватил обновлённые сертификаты, добавь хук:

Теперь docker-mailserver будет перезапущен автоматически после обновления сертификатов.


✅ Всё готово!

Теперь у тебя:

  • ✅ Автоматическое обновление SAN-сертификата через certbot

  • ✅ Поддержка нескольких почтовых доменов

  • ✅ Без остановки сервисов

  • ✅ Без ручных renew

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *