Hello everyone,
I solved my Mailcow + external Nginx reverse proxy issues by adding these iptables rules:
iptables -I DOCKER-USER -i br-mailcow -j ACCEPT
iptables -I INPUT -i br-mailcow -j ACCEPT
Here’s my working Nginx config:
server {
listen 10.0.0.101:80;
server_name webmail.xxxxxxxxx.xx mx.xxxxxxxxx.xx autodiscover.xxxxxxxxx.xx autoconfig.xxxxxxxxx.xx;
return 301 https://$host$request_uri;
}
server {
listen 10.0.0.101:443 ssl;
server_name webmail.xxxxxxxxx.xx mx.xxxxxxxxx.xx autodiscover.xxxxxxxxx.xx autoconfig.xxxxxxxxx.xx;
client_max_body_size 1G;
ssl_certificate /mnt/data/certificates/wildcard-xxxxxxxxx.xx/cert.pem;
ssl_certificate_key /mnt/data/certificates/wildcard-xxxxxxxxx.xx/key.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256';
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "no-referrer" always;
add_header Permissions-Policy "geolocation=(), microphone=()" always;
add_header X-XSS-Protection "1; mode=block" always;
location /Microsoft-Server-ActiveSync {
proxy_pass http://MAIL1.xxxxxxxxx.local:8080/Microsoft-Server-ActiveSync;
proxy_set_header Host $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;
proxy_connect_timeout 75;
proxy_send_timeout 3650;
proxy_read_timeout 3650;
proxy_buffers 64 512k;
client_body_buffer_size 512k;
client_max_body_size 0;
}
location / {
proxy_pass http://MAIL1.xxxxxxxxx.local:8080/;
proxy_set_header Host $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;
proxy_buffer_size 128k;
proxy_buffers 64 512k;
proxy_busy_buffers_size 512k;
client_max_body_size 0;
}
}
Relevant mailcow.conf extract:
MAILCOW_HOSTNAME=webmail.xxxxxxxxxxxx.xx
MAILCOW_PASS_SCHEME=BLF-CRYPT
DBNAME=mailcow
DBUSER=mailcow
DBPASS=######################
DBROOT=######################
REDISPASS=######################
TRUSTED_PROXIES=10.0.0.101
HTTP_PORT=8080
HTTP_BIND=
HTTPS_PORT=8443
HTTPS_BIND=
HTTP_REDIRECT=n
One remaining issue:
When I set HTTP_REDIRECT=y, the webmail becomes completely unreachable.
Any idea why? Thanks in advance.