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

2 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

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