Dovecot SSL alert number 46 mit Letsencrypt unter Ubuntu 20.04

Ich verwende Dovecot in Verbindung mit Let’s Encrypt schon viele Jahre.
Aber seit einiger Zeit und einem Apple-Update auf Mobilgeräten bekomme ich dauernd den Fehler, dass das R3 Zertifikat abgelaufen ist. Wenn man dann aber in das Zert prüft ist alles okay. Aber die Apple Geräte melden die ganze Zeit den Zertifikatsfehler und weigern sich das Zertifikat anzuerkennen.
Auf Android Geräten funktioniert das Abrufen ohne Fehler.

Wenn man das Log des Dovecot Mailservers mit tail -f /var/log/mail.log prüft findet man hunderte von Zeilen wir diese:

Nov 25 23:08:59 atlas dovecot: imap-login: Disconnected (no auth attempts in 0 secs): user=<>, rip=177.181.131.141, lip=192.168.4.1, TLS handshaking: SSL_accept() failed: error:14094416:SSL routines :ssl3_read_bytes:sslv3 alert certificate unknown: SSL alert number 46, session=
Nov 25 23:08:59 atlas dovecot: imap-login: Disconnected (no auth attempts in 0 secs): user=<>, rip=177.181.131.141, lip=192.168.4.1, TLS handshaking: SSL_accept() failed: error:14094416:SSL routines :ssl3_read_bytes:sslv3 alert certificate unknown: SSL alert number 46, session=
Nov 25 23:08:59 atlas dovecot: imap-login: Disconnected (no auth attempts in 0 secs): user=<>, rip=177.181.131.141, lip=192.168.4.1, TLS handshaking: SSL_accept() failed: error:14094416:SSL routines :ssl3_read_bytes:sslv3 alert certificate unknown: SSL alert number 46, session=
Nov 25 23:08:59 atlas dovecot: imap-login: Disconnected (no auth attempts in 0 secs): user=<>, rip=177.181.131.141, lip=192.168.4.1, TLS handshaking: SSL_accept() failed: error:14094416:SSL routines :ssl3_read_bytes:sslv3 alert certificate unknown: SSL alert number 46, session=

Wenn man nach dem Error „ssl3_read_bytes:sslv3 alert certificate unknown: SSL alert number 46“ sucht, dann findet man die wildesten Ergebnisse aber keins das zum Ziel geführt hat.

ISRG-Zertifikatshierarchiediagramm, Stand Dezember 2020
Quelle: https://letsencrypt.org/de/certificates/

Die Lösung

Was den Apple Geräten fehlt ist das R3 Intermediate-Zertifikate. Aus irgendeinem Grund ist in der standard Dovecot Konfiguration nur das Root CA Zertifikat eingetragen (cert.pem). Um den Fehler beseitigen muss die komplette Zertifikatskette hinterlegt werden. Let’s Encrypt erstellt dank certbot die Datei „fullchain.pem“ automatisch.

Unter Ubuntu ist die Dovecot SSL Config in mehrere Dateien unterteilt.
Wir brauchen die Datei /etc/dovecot/conf.d/10-ssl.conf

Folgende Zeile suchen

ssl_cert = </etc/letsencrypt/live/atlas.hagenfragen.de/cert.pem

und gegen diese Zeile ersetzen

ssl_cert = </etc/letsencrypt/live/atlas.hagenfragen.de/fullchain.pem

Dovecot neu starten

/etc/init.d/dovecot restart
oder
service dovecot restart

Danach das Log mit tail -f /var/log/mail.log beobachten

Nov 25 23:12:01 atlas dovecot: imap-login: Login: user=, method=PLAIN, rip=177.181.131.141, lip=192.168.4.1, mpid=133797, TLS, session=
Nov 25 23:12:01 atlas dovecot: imap-login: Login: user=, method=PLAIN, rip=177.181.131.141, lip=192.168.4.1, mpid=133799, TLS, session=
Nov 25 23:12:08 atlas dovecot: imap-login: Login: user=, method=PLAIN, rip=177.181.131.141, lip=192.168.4.1, mpid=133801, TLS, session=

Erledigt – Problem gelöst

5 Kommentare
  1. Laurent Marandet
    Laurent Marandet sagte:

    Excellent workaround ! Previously I had to import CA in some iphones in 2021 when LetsEncrypt has moved to a new root cert. This worked also today for two Samsung Android smartphones which loose randomly negociation with dovecot imaps server.
    Thanks a lot.

    Antworten
  2. Arthur Erhardt
    Arthur Erhardt sagte:

    Vielen Dank, die Beschreibung half auch bei einer leicht davon abweichenden Situation weiter:
    1. Dovecot läuft stabil und ohne Neustart seit sehr langer Zeit (> 163 Tage)
    2. Letsencrypt aktualisierte irgendwann vor ca. Wochen die Zertifikate.
    3. Userin beklagt sich erst jetzt daß sie nimmer an ihre Mails kommt, Fehlermeldung war:

    dovecot: imap-login: Disconnected: Connection closed: SSL_accept() failed: error:0A000416:SSL routines::sslv3 alert certificate unknown: SSL alert number 46 (no auth attempts in 0 secs):

    Dovecot neu starten reichte um das Problem zu lösen. Wird nun per crontab täglich einmal getan.

    Antworten
  3. CoMaE
    CoMaE sagte:

    Moin,
    ich habe genau den selben Fehler aber bei mir funktioniert der workaround leider nicht, hat irgendwer eine Idee?
    Ich suche jetzt seit knapp einem Monat nach einer Lösung aber finde keine.

    Antworten

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert