Courier-IMAP mit SSL sichern
Gerade wenn man manchmal in ungeschützten WLANs online geht, ist es sinnvoll, nur per verschlüsselter Verbindung auf seinen Mail-Server zuzugreifen, also mittels SSL bzw. TLS. Auf meinem Server läuft Courier als Mailserver, auf den ich per IMAP zugreife, diesen habe ich nun per SSL gesichert.Um den IMAP-Server mit SSL-Verschlüsselung auszustatten, benötigt man zunächst einige zusätzliche Pakete:
apt-get install courier-imap-ssl
Bei der Installation wird bereits fast alles so eingerichtet, wie es sein muss, dazu erzeugt sich Courier-IMAP-SSL ein selbstsigniertes Zertifikat. Als nächstes kann man dann einfopenssl genrsa -des3 -out ca.key 2048
openssl req -new -x509 -days 3650 -key ca.key -out ca.crtach z.B. mit Thunderbird bzw. Icedove versuchen, auf den verschlüsselten Mail-Account zuzugreifen (indem man einfach in den Konteneinstellungen das Häkchen bei “SSL” setzt):
Beim Abrufen von neuer Mail kommen daraufhin aber zwei Fehlermeldungen:
- Das Zertifikat kommt nicht von einer gültigen Zertifizierungsstelle (klar, Courier hat es ja auch selbst signiert).
- Das Zertifikat ist nicht auf den Namen des Mailservers, z.B. mail.example.org, sondern auf localhost ausgestellt.
Also brauchen wir ein neues Zertifikat, am besten von einer “echten” Zertifizierungsstelle. Thawte, Verisign & co. verlangen heftige Preise für ihre Zertifikate, aber es gibt auch Alternativen wie cacert.org. Hier kann man sich ziemlich leicht selber Zertifikate ausstellen lassen, die auch nichts kosten. Leider ist auch hier das Root-Zertifikat nicht automatisch in Thunderbird/Icedove installiert, man muss es zunächst von cacert.org herunterladen und über Einstellungen -> Erweitert -> Zertifikate -> Zertifikate importieren.
Nachdem man sich bei CACert angemeldet hat und seine Domain hinzugefügt hat (dazu muss auch die E-Mail-Adresse überprüft werden), kann man ein Zertifikat erstellen. Dazu benötigt man ein sogenanntes “Certificate Signing Request”, also eine Anforderung zum signieren des eigenen Schlüssels. Dieses lässt sich auf dem Server wie folgt erzeugen:
openssl genrsa -out courier.key 2048
openssl req -new -key courier.key -out courier.csr
Bei dem zweiten Befehl kann man für ein CACert-Zertifikat alles außer Common Name freilassen, bei letzterem muss der Name des Servers eingetragen werden, also z.B. mail.example.org (auch wenn das “YOUR name”, was OpenSSL einem anzeigt, etwas irreführend ist…).
Das in courier.csr gespeicherte CSR kann man jetzt bei CACert eingeben und erhält sein Zertifikat als Textblock. Diesen speichert man auf dem Server in die Datei courier.crt und führt noch folgende Befehle aus:
cat courier.key courier.crt > courier.pem
openssl gendh >> courier.pem
Anschließend muss noch die Datei courier.pem an die richtige Stelle kopiert werden und Courier neu gestartet werden:
cp courier.pem /etc/courier/imapd.pem
chmod 0600 /etc/courier/imapd.pem
/etc/init.d/courier-imap-ssl restart
Beim nächsten Abrufen von Mails sollten danach keine Warnungen mehr auftreten, und die Mails werden verschlüsselt bis zum Server geschickt.
DEBlog