Sie befinden sich hier: Hilfe / Howtos / Mail / SSL-Mail
Deutsch
2014-10-31

Content

SSL-Mail

Leider ist die Dokumentation des Eisfair-Mailservers derzeit noch sehr spärlich mit Informationen zum abholen von E-Mails per SSL-VerZertifikatter Verbindung gespickt. Daher dieses HowTo, ich hoffe das es jemandem hilft :-)

 

Die Einrichtung von SSL besteht eigentlich nur aus vier kurzen Schritten:

 

1. Einschalten von SSL in der Fetchmail-Konfiguration

2. Bereitstellen des Zertifikates des POP3-Servers

3. Bereitstellen des Zertifikates der Trust Center bzw. Certificate Authorities

4. Erstellen der Hashes der Zertifikate

 

Schritt 1)

Die SSL-Verschlüsselung zu aktivieren ist ziemlich einfach: Man muss nur in der Fetchmail-Konfiguration einige Variablen richtig setzen.

 

FETCHMAIL_x_SSL_PROTOCOL='tls1'

Die zu benutzende Verschlüsselung: keine, ssl2, ssl3 oder tls1. Für meine Accounts bei GMX und Web.de funktioniert tls1 ganz gut, ich nehme aber an, das jede andere Verschlüsselungsart (ausser 'none' natürlich ;-) auch Funktionieren sollte.

 

FETCHMAIL_x_SSL_TRANSPORT='yes'

Diese Variable schaltet den SSL-Modus ein oder aus, nützlich z.B. falls eine der anderen Variablen irgend einen Fehler enthält. Diese Variable lässt man am besten auf 'no', bis alle nötigen Daten vorliegen.

 

FETCHMAIL_x_SSL_FINGERPRINT='1F:41:82:3D:67:D7:44:28:AA:64:DA:06:9C:D6:76:47'

Der Fingerprint des Servers - damit kann die Identität des Servers überprüft werden. Diesen zu finden ist leider etwas umständlich. Man muss dazu zunächst die Konfiguration des Mailpaketes wieder verlassen und die Mailservices stoppen. Anschliessend geht man zur Kommandozeile - am besten eine zweite Shell nehmen. Man kann nun, da der fetchmail-Daemon nicht mehr läuft, fetchmail von Hand aufrufen. Der Aufruf sollte ungefähr so aussehen:

 

eis 1.0 # fetchmail <Adresse des Mailservers> --ssl --verbose --username <username> --protocol <pop3 oder imap>

 

Natürlich sollte man die richtige Adresse des Mailservers (z.B. pop3.web.de) und den eigenen Usernamen verwenden. Nachdem man Enter drückt wird man von Fetchmail um ein Passwort gebeten. Hier ist es ratsam ein FALSCHES Passwort anzugeben. Die Verhindert das Mails die eventuell auf dem Server bereitliegen abgeholt und inrgendwo undefiniert ins lokale Mailsystem eingefädelt werden.

Nach der eingabe des Passworts erscheint ein haufen Datensalat auf dem Schirm. Der interessante Teil ist relativ weit oben, zwischen der fünften und der zehnten Zeile. Es sieht ungefähr folgendermassen aus:

 

fetchmail: pop.gmx.net key fingerprint:

F1:08:B6:AB:7A:4C:70:AA:1F:67:C5:3B:F3:28:A8:DB

 

Womit der Fingerprint des Servers gefunden wäre. Diesen kann man nun in die Konfiguration eintragen und den Fetchmail-Daemon wieder starten.

 

Schritt 2)

Das finden der Zertifikate ist wohl noch der einfachste Part der ganzen Sache. ACHTUNG: Derzeit (erstellung dieses HowTo's) enthält die stable-Version des Mailpaketes schon die Zertifikate für pop3.epost.de und das zugehörige TrustCenter (Thawte). Wenn der Mailserver nun ein Thawte-Zertifikat verwendet, muss nur das Zertifikat des Mailservers selbst installiert werden. Die ist z.B. bei web.de und Arcor der Fall.

 

 

Man geht wiederum an die Konsole und fragt einfach mittels OpenSSL den Server nach seinem Zertifikat. Das geht folgendermassen:

 

eis 1.0 # openssl s_client -connect pop.gmx.net:995 -showcerts

 

Es erscheint wieder ein haufen Daten auf dem Bildschirm. Der Interessante Teil findet sich zwischen

 

-----BEGIN CERTIFICATE-----

MIIDrzCCA.......

-----END CERTIFICATE-----

 

Dies alles inklusive dem -----BEGIN... und -----END... müssen nun in einem File abgelegt werden, welcher sich im Verzeichnis /usr/local/ssl/certs/ befinden sollte. Wie der File heisst ist egal, jedoch sollte er die Endung

*.pem enthalten.

 

 

Schritt 3)

Damit nun überprüft werden kann ob das Zertifikat auch stimmt, muss ein weiteres Zertifikat her: Das Zertifikat der CA die das Zertifikat des Servers unterschrieben hat. Zunächst gilt es also herauszufinden, wie die für den Server zuständige CA heisst. Den Namen findet man zurk nach dem Ende des Zertifikats:

 

0sV2lPdcBWgnn5tvUPzKppC3HMQSuDgNEHIZf9OOKKHhWEs=

-----END CERTIFICATE-----

---

Server certificate

subject=/C=DE/ST=Bayern/L=Muenchen/O=GMX

Aktiengesellschaft/OU=mail/CN=pop.gmx.net/Email=webmaster@gmx.net

issuer=/C=DE/ST=Hamburg/L=Hamburg/O=TC TrustCenter for Security in Data

Networks GmbH/OU=TC TrustCenter Class 3 CA/Email=certificate@trustcenter.de

 

Hier sieht man das das zuständige Trust Center (=CA) für diesen Server die "TrustCenter for Security in Data Networks GmbH" ist. Nach dem Namen dieser CA sollte man nun am besten Googeln. Auf der Homepage dieser Firma sollte man nun die Zertifikate finden. Sie müssen vom Typ x509 und im PEM-Format sein. Es kommt auch vor, das die Zertifikate nur im DER-Format vorliegen. Dieses kann man mittels dem Befehl

 

eis 1.0 # openssl x509 -in certificate.der -inform DER -outform PEM

 

in das PEM-Format umwandeln, leider hat das bei mir aus noch nicht geklärten Gründen bisher nicht geklappt. Hat man nun die Zertifikate gefunden, kann man sie z.B. mittels wget in das Verzeichnis /usr/local/ssl/certs/ speichern.

 

 

Schritt 4)

Um die Hashes zu erstellen, dient das Perl-Script
/usr/bin/ssl/c_rehash. Bitte ins Verzeichnis /usr/local/ssl/certs
wechseln und von dort aus c_rehash aufrufen, woraufhin die Hashes
für alle Zertifikate erstellt werden.

 

Wenn man nun den SSL-Modus aktiviert (Fetchmail-Konfiguration -> FETCHMAIL_x_SSL_TRANSPORT='yes') sollten E-Mails per SSL-Verschlüsselung vom Server abgeholt werden können. Am besten stösst man einmal den Mailabruf an und schaut dann nach ca. einer halben minute ins Log. Wenn keine Fehler auftauchen, sollte alles stimmen. Nocheinmal verifizieren kann man dies am besten indem man sich selbst eine Testmail schickt.

 

Sollte etwas nicht funktionieren, bitte keine Mails an mich. Die EIS-Mailingliste, die EIS-Newsgroup oder der EIS-IRC-Channel sind hierfür die richtigen Adressen.

 

 

=== ZUR BESONDEREN BEACHTUNG ===

Die Zertifikate gelten nicht ewig! Die der CA's sind relativ langlebig, ich habe für das oben genannte Trust Center Zertifikate die bis 2005 gelten, für ein anderes TC sogar ein Zertifikat bis 2020. Die Zertifikate der Server selbt gelten jedoch nur ein Jahr und müssen daher periodisch erneuert werden. Überprüfen kann man die Gültigkeitsdauer der Zertifikate mit folgendem Befehl:

 

openssl x509 -in name_des_zertifikats-files.pem -noout -dates

 

Nachtrag: Ich habe gerade erfahren, dass in der neuen 1.1.2-Version des Mailpaketes eine Option vorhanden sein wird die automatisch eine gewisse Zeit vor dem Ablauf eines Zertifikats warnt.

 

Nachtrag 2: Ich bin mir nicht sicher, ob die Fingerprints gleich bleiben wenn sich der Schlüssel des Servers ändert.

 

Der Dank für dieses Dokument gebührt den Mitgliedern der EIS-Newsgroup die mich bei meinem Problem unterstützt haben. Ich habe lediglich alles nochmal abgetippt und mehr Fehler reingemacht :-)

 

Damian Philipp

damian.philipp [at] gmx [dot] net