Skip to main content

Anpassungen Mailcow

Weiterleitung von HTTP auf HTTPS

Weitere Informationen: https://docs.mailcow.email/manual-guides/u_e-80_to_443/?h=http

Kontrollieren Sie die Datei /opt/mailcow-dockerized/mailcow.conf ob der Eintrag "HTTP_BIND" vorhanden ist.

Erstellen Sie die Datei /opt/mailcow-dockerized/data/conf/nginx/redirect.conf mit folgenden Inhalt:

server {
  root /web;
  listen 80 default_server;
  listen [::]:80 default_server;
  include /etc/nginx/conf.d/server_name.active;
  if ( $request_uri ~* "%0A|%0D" ) { return 403; }
  location ^~ /.well-known/acme-challenge/ {
    allow all;
    default_type "text/plain";
  }
  location / {
    return 301 https://$host$uri$is_args$args;
  }
}

Starten Sei ggf. Mailcow neu mit dem folgenden Befehlen:

docker compose down
docker compose up -d

Bitte unbedingt prüfen, ob danach noch LE Zertifikate ausgestellt werden können!

Weitere Hostnamen wie z.B. webmail verwenden und SOGo weiterleiten

In der Datei mailcow.conf die folgende Änderung vornehmen:

ADDITIONAL_SERVER_NAMES=webmail.freesoc.de

Dann die folgende Befehle eingeben:

touch data/assets/ssl/force-renew
docker compose restart acme-mailcow

Sollte die mailcow.conf geändert worden sein, muss mailcow komplett neu gestartet werden - wenn dann das Zertifikat erstellt wurde, dann kann es weitergehen.

Die Datei data/conf/nginx/webmail.conf mit den folgenden Inhalt erstellen (Pfade usw. kontrollieren):

server {
  ssl_certificate /etc/ssl/mail/cert.pem;
  ssl_certificate_key /etc/ssl/mail/key.pem;
  index index.php index.html;
  client_max_body_size 0;
  root /web;
  include /etc/nginx/conf.d/listen_plain.active;
  include /etc/nginx/conf.d/listen_ssl.active;
  server_name webmail.freesoc.de;
  server_tokens off;
  location ^~ /.well-known/acme-challenge/ {
    allow all;
    default_type "text/plain";
  }

  location / {
    return 301 https://mail.freesoc.de/SOGo;
  }
}

Weitere Infos: https://docs.mailcow.email/de/manual-guides/Nginx/u_e-nginx_webmail-site/

ACME HTTP Validation failed

Wenn die URL von extern aufrufbar ist, dennoch mit http validation failed, müssen in der mailcow.conf folgende Änderungen vorgenommen werden:

SKIP_IP_CHECK=y 
SKIP_HTTP_VERIFICATION=y

Anschließend dann:

docker-compose down
service docker restart
docker-compose up -d
docker-compose logs --tail=200 -f acme-mailcow

Weitere Informationen: https://github.com/mailcow/mailcow-dockerized/issues/4463