Установка и настройка почтового сервера является важной задачей для любой организации или веб-разработчика. Один из популярных вариантов для этих целей — mailu, который предоставляет легкий и удобный в использовании почтовый сервер, основанный на Docker.
Однако, по умолчанию mailu не использует HTTPS для защиты соединения. Вместо этого он работает на открытом порту 80. Но если вы хотите добавить безопасность и использовать порт 443 с SSL/TLS-сертификатом, вам необходимо настроить обратное прокси-соединение с сервером Nginx.
Для начала вам необходимо установить Nginx и сгенерировать SSL/TLS-сертификат для вашего домена. Затем вы должны создать конфигурационный файл Nginx, чтобы указать ему перенаправлять запросы с порта 443 на ваш сервер mailu.
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /путь_к_вашему_сертификату;
ssl_certificate_key /путь_к_вашему_ключу;
location / {
proxy_pass http://mailu;
}
}
В приведенном выше примере, замените «example.com» на ваш домен и укажите пути к вашему SSL/TLS-сертификату и ключу. Затем вам останется только перезапустить Nginx и наслаждаться полной защитой вашего почтового сервера на порту 443!
Установка mailu совместно с nginx на порту 443
Шаг 1: Установка Docker и Docker Compose
Прежде чем продолжить установку Mailu, убедитесь, что на вашем сервере установлены Docker и Docker Compose. Если они отсутствуют, вы можете установить их следующими командами:
$ sudo apt update
$ sudo apt install docker docker-compose
Шаг 2: Установка Nginx
Для установки Nginx воспользуйтесь следующей командой:
$ sudo apt install nginx
Шаг 3: Генерация SSL-сертификата
Для обеспечения безопасного соединения необходимо сгенерировать самоподписанный SSL-сертификат. Для этого выполните следующие команды:
$ sudo openssl req -new -x509 -sha256 -days 365 -nodes -out /etc/nginx/cert.crt -keyout /etc/nginx/cert.key
Шаг 4: Настройка Nginx
Откройте файл конфигурации Nginx:
$ sudo nano /etc/nginx/sites-available/default
В открывшемся файле замените содержимое на следующую конфигурацию:
server {
listen 443 ssl;
server_name your_domain.com;
ssl_certificate /etc/nginx/cert.crt;
ssl_certificate_key /etc/nginx/cert.key;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
Шаг 5: Установка Mailu
Скачайте файл docker-compose.yml для установки Mailu следующей командой:
$ sudo wget https://raw.githubusercontent.com/Mailu/Mailu/1.7.0/docker-compose.yml
Откройте файл docker-compose.yml:
$ sudo nano docker-compose.yml
Найдите и измените следующие параметры:
mail.your_domain.com – замените «your_domain.com» на доменное имя вашего сервера.
smtp.your_domain.com – замените «your_domain.com» на доменное имя вашего сервера.
admin@your_domain.com – замените «your_domain.com» на доменное имя вашего сервера.
Создайте контейнеры для Mailu с помощью следующей команды:
$ sudo docker-compose up -d
Теперь Mailu должен быть установлен и готов к использованию в комбинации с Nginx на порту 443.