SSL Probleme in mailcow

einfachpeer

Lt. Commander
Registriert
Apr. 2022
Beiträge
1.367
Moin zusammen,

ich nutze schon länger die Mailcow (nur mit Outlook).

Heute wollte ich mich einmal auf dem Admin Panel anmelden, um Updates zu machen.

Doch meine gesamten SSL Zertifikate sind seit einem Monat abgelaufen.

Ich nutze für meine Website domain.de Cloudflare proxied und xy.domain.de, was dann nur ein DNS Record ist.


Ich erhalte die Fehlermeldung


Dieser Server konnte nicht beweisen, dass er xy.domain.de ist. Sein Sicherheitszertifikat ist vor 31 Tagen abgelaufen. Mögliche Gründe sind eine fehlerhafte Konfiguration oder ein Angreifer, der deine Verbindung abfängt. Die Uhr deines Computers ist momentan auf Dienstag, 22. Oktober 2024 eingestellt. Ist das richtig? Wenn nicht, korrigiere die Uhrzeit deines Systems und aktualisiere dann diese Seite.

Dann habe ich das ausgeführt /mailcow-dockerized$ ./helper-scripts/expiry-dates.sh
TLS expiry dates:
Postfix: Oct Seit 31 Tagen
Dovecot: Oct Seit 31 Tagen
Nginx: Seit 31 Tagen

Wie genau aktualisiere ich diese Zertifikate nun ?

Ich habe folgendes gemacht


  • Autodiscover und Autoconfig Eintrag überprüft
  • FireWall überprüft
  • Log sagt :
    The container detects your IP addresses and finds A records for all three domains pointing to the same IP ).
    However, during HTTP validation, acme-mailcow can’t access the temporary files placed by Let’s Encrypt on your web server (likely Nginx). This results in the validation failure.
    (Habe KI die Log File gegeben und er hat es so zusammengefasst)

Wie behebe ich das ?

Danke ;D
 
Zuletzt bearbeitet:
Naja.
Hat denn NetCup keine Anleitungen wie man auf den Server kommt?
 
Netcup??

Ist mailcow der Endpunkt oder hängt da ein Trafik als Endpunkt davor?
Hat vielleicht nur irgendein reload nicht geklappt?
 
So. Moin Zusammen :D

Jap. 80 geht. Ich bin aber noch nicht ganz schlau draus geworden, warum er es nicht aktualisiert.

Ich ziehe den Server des öfteren auf einen anderen Host um und stelle Mailcow mit Backup and restore.sh wiederher.

Ich könnte das natürlich jetzt manuell machen, aber das ist ja nicht Sinn der Sache
 
@CoMo
/var/lib/acme/acme/key.pem
acme-mailcow-1 | Wed Oct 23 17:14:49 CEST 2024 - Using existing Lets Encrypt account key /var/lib/acme/acme/account.pem
acme-mailcow-1 | Wed Oct 23 17:14:49 CEST 2024 - Detecting IP addresses...
acme-mailcow-1 | Wed Oct 23 17:14:49 CEST 2024 - OK: [IP-ADRESSE1], [IP-ADRESSE2]
acme-mailcow-1 | Wed Oct 23 17:14:49 CEST 2024 - Found A record for autodiscover.[DOMAIN]: [IP-ADRESSE1]
acme-mailcow-1 | Wed Oct 23 17:14:49 CEST 2024 - Confirmed A record with IP [IP-ADRESSE1], but HTTP validation failed
acme-mailcow-1 | Wed Oct 23 17:14:49 CEST 2024 - Found A record for autoconfig.[DOMAIN]: [IP-ADRESSE1]
acme-mailcow-1 | Wed Oct 23 17:14:49 CEST 2024 - Confirmed A record with IP [IP-ADRESSE1], but HTTP validation failed
acme-mailcow-1 | Wed Oct 23 17:14:49 CEST 2024 - Found A record for mail.[DOMAIN]: [IP-ADRESSE1]
acme-mailcow-1 | Wed Oct 23 17:14:49 CEST 2024 - Confirmed A record with IP [IP-ADRESSE1], but HTTP validation failed
acme-mailcow-1 | Wed Oct 23 17:14:49 CEST 2024 - Cannot validate any hostnames, skipping Let's Encrypt for 1 hour.
acme-mailcow-1 | Wed Oct 23 17:14:49 CEST 2024 - Use SKIP_LETS_ENCRYPT=y in mailcow.conf to skip it permanently.
acme-mailcow-1 | OK

Wo liegt mein Problem ?
 
Wie lange sind Zertifikate auf der Festplatte gültig? Welche Zertifikate sind laut config eingebunden?

einfachpeer schrieb:
Unwichtig. Ich reboote mal

Ich würde sagen der SSL-Endpunkt ist nicht unwichtig.

einfachpeer schrieb:
Ich ziehe den Server des öfteren auf einen anderen Host um und stelle Mailcow mit Backup and restore.sh wiederher.

Werden die Zertificate dabei mitgenommen oder liegen die ausserhalb?
 
Hey @JumpingCat :D

Vielen Dank für deine Antwort.

Ich habe das entsprechende Analysescript schonmal drüber laufen lassen.

Es handelt sich um xy.domain.de. Das Domain.de Zertifikat über Cloudflare ist gültig.

Wie update ich dies manuell ?
 
einfachpeer schrieb:
HTTP validation failed

Das klingt so, als ob Lets Encrypt nicht auf deinen Webserver auf Port 80 zugreifen kann, um die Challenge zu validieren. Du bist sicher, dass dein Mailcow von außen auf Port 80 erreichbar ist? Auf der IP-Adresse, auf die dein A-Record zeigt?
 
  • Gefällt mir
Reaktionen: JumpingCat
Also du holst ein Zertifikat aber Cloudflare hat auch ein Zertifikat? Dann verbindest du dich doch zu Cloudflare und siehst nie dein lokales Zertifikat.

Kannst du den Setup mal etwas genauer skizzieren? Wie sieht eine Verbindung aus? Wo sind welche Zertifikate eim Einsatz? Wie ist deren Gültigkeit?
 
ja. Apache lief ja auch. Habe apache beendet. aber trotzdem der gleiche Fehler
Ergänzung ()

Eine Idee wäre ja noch, das verschlüsseln Cloudflare zu überlassen und über HTTP draufzugehen und dann das halt von cloudflare zu proxien.

Doch ich erreiche unter meinem Custom HTTP Port (aus der Mailcow conf) nichts mit Proxied.domain.de: Port
 
Zuletzt bearbeitet:
Hey @redjack1000 Klar gerne.

Ja. Port 80 läuft. Ein Apache Server war auch erreichbar, aber diesen habe ich gestoppt für die Erneuerung.

Gruß Peer
 
Also das Login zur Mailcow habe ich aus Sicherheitsgründen nicht direkt auf 80
Ergänzung ()

redjack1000 schrieb:
Wenn du den Server stoppst, ist der Port beim erneuern geschlossen bzw. kann da nichts antworten.

CU
redjack
Also apache laufen lassen ?
 
Offenbar fehlt hier das Verständnis, wie so eine Validierung abläuft.

Wenn dein ACME-Client (hier dann also acme-mailcow) ein Zertifikat anfordert, muss er auf dem Webserver eine Datei unter .well-known/acme-challenge ablegen. Der ACME-Server (Let's Encrypt) ruft diese Datei dann auf Port 80 ab und kann somit sicherstellen, dass du wirklich Kontrolle über die Domain hast.

Da kann also nicht einfach irgendein Apache laufen. Dein Mailcow muss den Webserver kontrollieren. Und dein Mailcow-Webserver muss auf Port 80 erreichbar sein.

Das steht aber sicher auch in der Mailcow Anleitung.

Weniger Fehleranfällig ist übrigens die Validierung über eine DNS-Challenge. Wenn Mailcow das unterstützt, solltest du es konfigurieren.
 
  • Gefällt mir
Reaktionen: BFF, Malaclypse17, redjack1000 und eine weitere Person
Eigentlich hat Mailcow da eine super Dokumentation mit sehr guten Config Beispielen, mit welchen man den Webserver konfigurieren kann.
Wenn Apache in Nutzung ist muss auf jeden fall der folgende Block vorhanden sein, damit das erneuern von Lets Encrypt Zertifikaten klappt:

Apache-Konfiguration:
<VirtualHost *:80>
  ServerName ZU MAILCOW HOSTNAMEN ÄNDERN
  ServerAlias autodiscover.*
  ServerAlias autoconfig.*
  RewriteEngine on

  RewriteCond %{HTTPS} off
  RewriteRule ^/?(.*) https://%{HTTP_HOST}/$1 [R=301,L]
</VirtualHost>
https://docs.mailcow.email/de/post_installation/reverse-proxy/r_p-apache24/

Oder für Nginx:
NGINX:
server {
  listen 80 default_server;
  listen [::]:80 default_server;
  server_name CHANGE_TO_MAILCOW_HOSTNAME autodiscover.* autoconfig.*;
  return 301 https://$host$request_uri;
}
https://docs.mailcow.email/post_installation/reverse-proxy/r_p-nginx/

Evtl. weitere SANs werden in der mailcow.conf konfiguriert.
Damit klappt das zu 100%, ich habe die Dokumentation Schritt für Schritt abgearbeitet, ohne damals groß in der Materie gewesen zu sein und das hat alles auf anhieb geklappt, was denke ich für die Dokumentation von Mailcow spricht.
 
  • Gefällt mir
Reaktionen: CoMo
Jo, danke für die ganzen Tipps. Habe mit dem Certbot die Zertifikate erneuert und jetzt sind IMAP Clients und die Web UI tot
 
Zurück
Oben