Selbst signierte Zertifikate werden meist dann bevorzugt, wenn man das Geld für ein gekauftes Zertifikat sparen möchte. Es bringt jedoch den Nachteil, dass solche Zertifikate nicht auf ihre Echtheit hin überprüft werden, da es keine Zertifikatskette gibt, der vertraut werden kann. Fetchmail stört sich z.B. auch an selbst signierten Zertifikaten, jedoch kann man fetchmail dies auch abgewöhnen.

    Dazu braucht man als erstes den Fingerabdruck des Zertifikates.

    $ fetchmail -v mx02.blog.cscholz.io
    fetchmail: IMAP< A0001 OK Capability completed.fetchmail: IMAP> A0002 STARTTLS
    fetchmail: IMAP< A0002 OK Begin TLS negotiation now.
    fetchmail: Server-Zertifikat:
    fetchmail: Herausgeber-Organisation: blog.cscholz.io
    fetchmail: Herausgeber-CommonName: mx02.blog.cscholz.io
    fetchmail: Subjekt-CommonName: mx02.blog.cscholz.io
    fetchmail: mx02.blog.cscholz.io-Schlüssel-Fingerabdruck: 98:03:84:12:1F:FE:30:9B:AB:25:6D:B3:5B:F4:FE:B9
    fetchmail: Fehler bei Server-Zertifikat-Überprüfung: self signed certificate

    Jetzt fügen wir dem abzufragenden Konto in der .fetchmairc folgende Zeile hinzu:

    sslfingerprint "98:03:84:12:1F:FE:30:9B:AB:25:6D:B3:5B:F4:FE:B9"

    Nun brauchen wir noch das Serverzertifikat, an dieses kommen wir wie folgt:

    $ openssl s_client -connect mx02.blog.cscholz.io:995 -showcerts

    In der Ausgabe kopieren wir die Zeilen zwischen "—–BEGIN CERTIFICATE—–" sowie "—–END CERTIFICATE—–" inklusive der BEGIN & END Zeile in die Datei ~/.certs/mx02.blog.cscholz.io.pem, anschließend rehashen wir das Zertifikat:

    $ c_rehash ~/.certs/
    Doing /root/.certs/
    mx02.blog.cscholz.io.pem => 5487d62b.0

    Nun erweitern wir die .fetchmailrc um zwei weitere Einträge

    sslcertck
    sslcertpath /root/.certs

    …. und das Thema sollte gegessen sein 🙂

    Leave A Reply