Frage: | Warum erhält man beim Abruf eines POP3-Postfaches und Verwendung von SSL die Fehlermeldung 'fetchmail: Warning: server certificate verification: unable to get local issuer certificate'?
| Antwort: | Bei Verwendung von SSL muss sicher gestellt werden, dass das entsprechende Server-Zertifikate, das Zertifikat des Ausstellers und ein eventuelles Root-Zertifikat im lokalen Zertifikatsverzeichnis /usr/local/ssl/certs existieren. Auch müssen Hash-Werte für alle Zertifikate erstellt werden.
Die Konfigurationschritte sehen z.B. für den Zugriff auf securepop.t-online.de wie folgt aus:
1. Abruf des Server-Zertifikates
openssl s_client -connect securepop.t-online.de:995 -showcerts
Aus den angezeigten Informationen wird der Datenblock, welcher durch `-----BEGIN CERTIFICATE-----' und `-----END CERTIFICATE-----' gekapselt ist, markiert und in eine Datei mit z.B. dem Namen 'tonline.pem' kopiert. Die Datei muss im Verzeichnis /usr/local/ssl/certs abgelegt werden.
2. Server-Zertifikat prüfen:
openssl verify -CApath /usr/local/ssl/certs -verbose tonline.pem
Ausgabe: tonline.pem: /O=VeriSign Trust Network/OU=VeriSign, Inc./OU=VeriSign International Server CA - Class 3/OU=www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign error 2 at 1 depth lookup:unable to get issuer certificate
3. Aussteller des Zertifikats ablesen bzw. auf diese Weise ermitteln:
openssl x509 -in tonline.pem -noout -issuer
issuer= /O=VeriSign Trust Network/OU=VeriSign, Inc./OU=VeriSign International Server CA - Class 3/OU=www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign
4. Issuer-Zertifikate von Verisign herunterladen, bzw. dass beim Serverzertifikat mitgelieferte Zertifikat in einer Datei, z.B. 'vtnetwork.pem', abspeichern und Hash-Wert erzeugen. (Eventuell muss das Zertifikat zuvor noch in das PEM-Format konvertiert werden!)
5. Issuer-Zertifikat prüfen:
openssl verify -CApath /usr/local/ssl/certs -verbose vtnetwork.pem
vtnetwork.pem: /O=VeriSign Trust Network/OU=VeriSign, Inc./OU=VeriSign International Server CA - Class 3/OU=www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign error 20 at 0 depth lookup:unable to get local issuer certificate
6. Aussteller des Zertifikats ablesen bzw. auf diese Weise ermitteln:
openssl x509 -in vtnetworks.pem -noout -issuer
issuer= /C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
7. Root-Zertifikat von Verisign herunterladen und in einer Datei, z.B. vroot.pem, abspeichern und Hash-Wert erzeugen.
8. Schritt 4 wiederholen:
vtnetwork.pem: OK
9. Schritt 2 wiederholen:
tonline.pem: OK
10. Jetzt schaut man sich die Fetchmail-Parameter an und setzt diese wie folgt:
FETCHMAIL_x_ACTIVE='yes' FETCHMAIL_x_SERVER='securepop.t-online.de' FETCHMAIL_x_USER='+++mein-Login+++' FETCHMAIL_x_PASS='+++mein-Passwort+++' FETCHMAIL_x_FORWARD='+++lokaler-USer+++' FETCHMAIL_x_PORT='' FETCHMAIL_x_AUTH_TYPE='' FETCHMAIL_x_KEEP='no' FETCHMAIL_x_FETCHALL='yes' FETCHMAIL_x_SSL_PROTOCOL='ssl3' FETCHMAIL_x_SSL_TRANSPORT='yes' FETCHMAIL_x_SSL_FINGERPRINT='+++Fingerprint-des-Zertifikates+++' (Grossbuchstaben!)
(Fingerprint ermitteln: openssl x509 -in tonline.pem -noout -fingerprint -md5)
11. Hurra, es klappt ;-)
fetchmail: 6.2.5 querying securepop.t-online.de (protocol POP3) at Tue, 03 May 2005 22:38:20 +0200 (CEST): poll started fetchmail: Issuer Organization: VeriSign Trust Network fetchmail: Unknown Issuer CommonName fetchmail: Server CommonName: SECUREPOP.T-ONLINE.DE fetchmail: securepop.t-online.de key fingerprint: 1D:C8:2E:1E:B8:AA:9B:D9:15:98:B9:CD:B0:4F:E7:AC fetchmail: securepop.t-online.de fingerprints match. fetchmail: POP3< +OK T-Online POP3 Server fpopd ready fetchmail: POP3> CAPA
Hinweis: Die Zertifikatskette sieht also wie folgt aus:
tonline.pem (Server Zertifikat) --> vtnetwork.pem (Verisign Zertifikat) --> vroot.pem (Verisign Root-Zertifikat) | letzte Aktualisierung am 02.09.2012 | |