Как правильно подойти к вопросу: есть почтовый сервер, постоянно меняется сертификат SSL?

Ссылка скопирована
1 ответ

Сейчас ситуация такая: есть сервер MailCow, я пытался обновить сертификат. Я его обновил, но он постоянно меняется то один использует (просроченный) то другой (свежий). По какой причине я не знаю. Как бы разобраться.

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Никита Орлов Ответ

В Mailcow ситуация “то старый сертификат, то новый” почти всегда означает, что сертификат обновили не в одном месте, а сервисы используют разные копии или часть контейнеров не была перезапущена. Mailcow состоит из nginx, postfix, dovecot и других контейнеров, и для почты важны не только HTTPS-сертификаты, но и сертификаты SMTP/IMAP.

Сначала проверьте, какой сертификат отдаётся на разных портах:

openssl s_client -connect mail.example.ru:443 -servername mail.example.ru /dev/null | openssl x509 -noout -dates -issuer -subject
openssl s_client -connect mail.example.ru:993 -servername mail.example.ru /dev/null | openssl x509 -noout -dates -issuer -subject
openssl s_client -connect mail.example.ru:465 -servername mail.example.ru /dev/null | openssl x509 -noout -dates -issuer -subject

openssl s_client -connect mail.example.ru:443 -servername mail.example.ru /dev/null | openssl x509 -noout -dates -issuer -subject openssl s_client -connect mail.example.ru:993 -servername mail.example.ru /dev/null | openssl x509 -noout -dates -issuer -subject openssl s_client -connect mail.example.ru:465 -servername mail.example.ru /dev/null | openssl x509 -noout -dates -issuer -subject

Если на 443 свежий, а на 993/465 старый, значит обновился nginx, но postfix/dovecot смотрят на старую копию или контейнеры не перечитали файлы.

В Mailcow сертификаты обычно лежат в data/assets/ssl/. Проверьте, что там актуальные cert.pem и key.pem, а не несколько разных файлов. После замены сертификата нужно перезапустить сервисы:

cd /opt/mailcow-dockerized
docker compose restart nginx-mailcow postfix-mailcow dovecot-mailcow

cd /opt/mailcow-dockerized docker compose restart nginx-mailcow postfix-mailcow dovecot-mailcow

Если используете встроенный ACME Mailcow, не кладите параллельно сертификаты руками в другое место. Если используете внешний reverse proxy, проверьте, не терминирует ли он TLS на 443, а почтовые порты при этом обслуживает сам Mailcow со старым сертификатом.

Ещё одна частая причина — DNS/балансировка. Вы проверяете один IP, а клиент иногда попадает на другой сервер или старый контейнер. Проверьте:

nslookup mail.example.ru
docker ps
docker compose ps

nslookup mail.example.ru docker ps docker compose ps

Итог: проверяйте сертификаты отдельно на 443, 465, 587, 993. Затем убедитесь, что все сервисы Mailcow используют одну актуальную пару cert/key и перезапущены. Если после этого старый сертификат всё равно всплывает, ищите внешний proxy, второй IP или старый контейнер, который ещё слушает порт.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

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

Вам также может быть интересно