Docker Mailcow: Как обновить сертификат при смене доменов в настройках с nginx как обратным прокси?

Вопрос или проблема

Я настроил решение mailcow-dockerized на своем сервере и хотел изменить домен моего почтового сервера с mail.example.ml на mail.example.tk, но когда я это сделал, мой браузер жаловался на неправильный сертификат, когда я посетил http://mail.example.tk.

Кроме того, приложение администрирования работало за nginx, настроенным как обратный прокси, с следующей обновленной конфигурацией vhost:

server {
   listen 80;
   server_name mail.thundermail.tk;

   location /.well-known {
        proxy_pass http://127.0.0.1:8080/.well-known ;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        client_max_body_size 100m;

   }

   location / {
        rewrite ^(.*) https://$server_name$1 permanent;
   }

}

server {
 listen 443 ssl;
 server_name mail.thundermail.tk;

 ssl_certificate     /opt/docker-mailcow/data/assets/ssl/cert.pem;
 ssl_certificate_key /opt/docker-mailcow/data/assets/ssl/key.pem;
 ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
 ssl_ciphers         HIGH:!aNULL:!MD5;


 location / {
        proxy_pass http://127.0.0.1:8080/;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        client_max_body_size 100m;
 }
}

Имейте в виду, что решение mailcow:dockerized генерирует сертификаты в пути opt/docker-mailcow/data/assets/ssl.

У вас есть идеи, как сгенерировать новые сертификаты?

Следуйте этим шагам:

1 cd ^путь_где_установлен_mailcow_dockerized^
2 В mailcow.conf измените строку, начинающуюся с MAILCOW_HOSTNAME, на

MAILCOW_HOSTNAME=mail.example.tk

3 Выполните: docker-compose down && docker-compose up -d

4 Перезапустите nginx. (В Debian или дистрибутивах Linux на базе Debian это можно сделать с помощью команды sudo service nginx restart)

Ответ или решение

Чтобы обновить сертификаты и изменить домен в установленной системе Mailcow с использованием Nginx в качестве обратного прокси, выполните следующие шаги:

  1. Перейдите в директорию установки Mailcow:
    Откройте терминал и выполните команду:

    cd ^путь_к_установке_mailcow_dockerized^
  2. Измените конфигурационный файл mailcow.conf:
    Откройте файл mailcow.conf в текстовом редакторе и измените строку, начинающуюся с MAILCOW_HOSTNAME, на следующую:

    MAILCOW_HOSTNAME=mail.example.tk
  3. Перезапустите Mailcow:
    После изменения конфигурации выполните следующие команды для остановки и перезапуска Mailcow:

    docker-compose down && docker-compose up -d
  4. Сгенерируйте новые сертификаты:
    Mailcow автоматически генерирует SSL-сертификаты при запуске. Если вы хотите использовать Let’s Encrypt для создания новых сертификатов на ваш новый домен, убедитесь, что у вас корректно настроены DNS-записи для вашего нового домена. Затем выполните команду:

    docker-compose exec mailcowletsencrypt bash
    /usr/local/bin/certbot renew
  5. Обновите конфигурацию Nginx:
    Убедитесь, что конфигурация вашего Nginx совпадает с новым доменом. Пример конфигурации, как вы указали, должен выглядеть следующим образом:

    server {
       listen 80;
       server_name mail.example.tk;
    
       location /.well-known {
           proxy_pass http://127.0.0.1:8080/.well-known;
           proxy_set_header Host $http_host;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header X-Forwarded-Proto $scheme;
           client_max_body_size 100m;
       }
    
       location / {
           rewrite ^(.*) https://$server_name$1 permanent;
       }
    }
    
    server {
       listen 443 ssl;
       server_name mail.example.tk;
    
       ssl_certificate /opt/docker-mailcow/data/assets/ssl/cert.pem;
       ssl_certificate_key /opt/docker-mailcow/data/assets/ssl/key.pem;
       ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
       ssl_ciphers HIGH:!aNULL:!MD5;
    
       location / {
           proxy_pass http://127.0.0.1:8080/;
           proxy_set_header Host $http_host;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header X-Forwarded-Proto $scheme;
           client_max_body_size 100m;
       }
    }
  6. Перезапустите Nginx:
    После внесения изменений в конфигурацию Nginx выполните команду для перезапуска Nginx:

    sudo service nginx restart
  7. Проверьте работоспособность:
    Запустите браузер и перейдите на https://mail.example.tk, чтобы убедиться, что сертификаты настроены правильно и что соединение установлено безопасно.

Эти шаги должны помочь вам изменить домен и обновить SSL-сертификаты для вашей установки Mailcow. Если у вас возникли вопросы или проблемы, не стесняйтесь обращаться за помощью.

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

Капча загружается...