Korrektur für Postfix TLS-Fehler „untrusted issuer“

Postix Logo mit Schriftzug Postfix

Ich konnte beim EMail-Versand von meinem Postfix EMail-Server zu GMX einmal wieder keine EMails zustellen. Laut Fehlermeldung in der Mail Delivery Notification gab es einen Zertifikatsfehler.

In den Postfix Logfiles erscheint die TLS-Fehlermeldung „untrusted issuer“.:

Der Aussteller des Zertzifikats des GMX-EMail Servers war meinem Postfix nicht bekannt.
Das SSL-Zertifikat des GMX EMail Server ist mit dem von der „Deutsche Telekom Root CA 2“ signiert. War über eine Suche im Internet schnell gefunden. Die erste Zeile des Zertifikats ist in der Datei /etc/ssl/certs/ca-certificates.crt enthalten.

Die erste Zeile des Zertifikats der Telekom lautet.: MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEc

In meiner Suche konnte ich einfach feststellen das das CA-Zertifikat der Telekom ab der Zeile 1110 in der Datei ca-certificates.crt enthalten ist.:

Ich prüfe daher gegen welche CA Zertifikate mein Postix prüft ob das Zertifikat gültig ist:

Ich hatte versäumt meinem Postfix bekannt zu geben wo es die CA Zertifikate auf meinem Server findet.
Ich habe mit postconf den CAfile bekannt gegeben…

…und Postfix neu gestartet…

…und endlich werden meine EMails wieder ohne Fehlermeldung an den gmx Mailserever zugestellt.

 

Scan to Donate Bitcoin to der_metzger
Did you like this?
Tip der_metzger with Bitcoin

IMAP über die Shell testen

Um einen IMAP Server zu testen ist ein EMail Programm immer nur die zweite Wahl, besser prüfst Du via Telnet oder OpenSSL.

Das IMAP Protokoll ist ein Klartext Protokoll, die Befehle sind Verständliche englischsprachige Wörter wie Beispielsweise Login, List, Select, Fetch, Store und so weiter.

Login in den EMail-Server

Der Zugriff ist unverschlüsslt via Telnet mit dem folgenden Aufruf nutzbar.:

Der verschlüsselte Zugriff via SSL erfolgt mittels ssl-Client openssl.:

Bei aktuellen IMAP Servern wird immer häufiger der unverschlüsselte Zugriff unterbunden, so das der Verschlüsselte IMAP Zugriff über das Tool OpenSSL die einzig nutzbare der beiden vorgestellten Möglichkeiten darstellt.

Der Login auf dem IMAP-Server erfolgt über den Befehl LOGIN.:

Klassischerweise wird als Benutzername die EMail-Adresse selbst verwendet. In einigen Fällen ist der Benutzername auch nur der erste Teil der EMail-Adresse bis zum, und ohne das @-Zeichen. In einigen seltenen Fällen hat der Benutzername eines IMAP-Servers auch keine Gemeinsamkeiten mit der abzufragenden EMail-Adresse. Genauere Informationen zu den Zugangsdaten Deines EMail-Postfachs erhälst Du von dem Betreiber des EMail-Servers.

Die IMAP-Befehle werden durch einen Tag begonnen, ich verwende hier als Tag einfach ein Fragezeichen.
Häufig wird als Tag eine Zahl verwendet oder das Tag enthält eine Zahl, die bei jedem Aufruf erhöht wird. Das Tag wird verwendet da Theoretisch mehrere Befehle gesendet werden können bevor die Antwort auf den vorherigen Befehl empfangen wird und auf diesem Web die Antworten den Befehlen zugeordnet werden können.
Alle IMAP-Befehle sind nicht case-sensitiv, so das diese nicht wie in meinen Beispielen immer groß geschrieben werden müssen.

Abrufen von EMails

Die Ordner im Postfach

Um zu erfahren welche Ordner auf dem EMail-Server anlegegt sind dient der Befehl LIST.

Als Antwort auf den Befehl LIST erhälst Du eine Liste mit den im Postfach angelegten Ordnern und des Ordner-Trennzeichens. Bei manchen EMail-Servern wird ein Punkt als Trennzeichen verwendet. Die Verwendung des Punktes kann einen Ordner wie Test.Ordner, bei fehlendem Ordner Test, zu einem Unterverzeichnis ohne Verzeichnis in dem das Unterverzeichnis liegt machen. Mozilla Thunderbird und Microsoft Outlook zeigen diesen „imaginären Ordner“ Test dann in Grau an, der Ordner Test kann nicht ausgewählt werden.)

Die EMails in den Ordnern

Die Anzahl der EMails in den einzelnen Ordnern kann durch den Befehl STATUS erfragt werden. Es werden die drei Optionen (MESSAGES) für alle Nachrichten, (RECENT) für nicht als gelesen markierte EMails und (UNSEEN) für noch nicht abgerufene EMails unterstützt.

Betreten eines Ordners

Ein Ordner kann zum mit EXAMINE zum Lesen oder mit SELECT zum lesen und Schreiben betreten werden.

Abrufen einer EMail

Es können verschiedene verschiedene Teile einer EMail abgerufen werden. Die beiden wichtigsten FETCH Optionen sind rfc822.text für den Inhalt einer EMail und rfc822.header für die EMail-Header. Es können aber auch die Größe (RFC822.SIZE) oder die FLAGS einer EMail abgefragt werden.

Anlegen und löschen eines Ordners

Zum Anlegen eines EMail-Ordners wird der Befehl CREATE verwendet, zum umbenennen RENAME und zum löschen der Befehl DELETE.

EMail Flags

Als gelöscht markierte EMails löschen

Idle Status

Suchen im Postfach

Abmelden

EMail löschen

Die Fähigkeiten des IMAP Servers erfahren

Wikipedia Artikel zum Internet Message Access Protocol
RFC3501 – INTERNET MESSAGE ACCESS PROTOCOL

Scan to Donate Bitcoin to der_metzger
Did you like this?
Tip der_metzger with Bitcoin

Multidomain Zertifikat erstellen

Mit openssl ist es wirklich einfach ein eigenes SSL Zertifikat und CSRs zu erstellen. Für Multi Domain Zertifikate muss jedoch auf konfigurations-Dateien zurückgegriffen werden.
Auch diese konfiguratios-Dateien sind nicht besonders kompliziert.

Eine Beispiel Konfigurationsdatei:

In diesem Beispiel werden als Domain „example.com“, „www.example.com“ und „www2.example.com“ validiert. Selbstverständlich könnten auch andere Domains angegeben sein.

Bei diesem Aufruf wird der Private Schlüssel key.pem und der CRS (Zertifikatsanfrage)csr.pem erstellt.

Diese Anleitung ist durch Lets Encrypt eigentlich überflüssig geworden. Um lokal genutzte Zertifikate und Testumgebungen zu unterstützen bleibt diese Anleitung erhalten.

Scan to Donate Bitcoin to der_metzger
Did you like this?
Tip der_metzger with Bitcoin

Nützliche OpenSSL Commands

OpenSSL

Formatwandlung eines Zertifikates vom .pem in das .pkcs12 Format

openssl pkcs12 -export -out mycert.p12 \
-inkey $HOME/.globus/userkey.pem \
-in $HOME/.globus/usercert.pem -name „My Certificate“

Formatwandlung eines Host Zertifikates vom .pkcs12 in das .pem Format

openssl pkcs12 -in host.domain.p12 -clcerts -nokeys -out host.domain.cert.pem
openssl pkcs12 -in host.domain.p12 -nocerts -nodes -out host.domain.key.pem

# These files should then be placed in /etc/grid-security and httpd.conf
# modified accordingly. host.domain.cert.pem can safely be world readable
# but host.domain.key.pem must only be readable by root!:
chown root.root host.domain.key.pem
chmod 0400 host.domain.key.pem

Formatwandlung eines Benutzer Zertifikates vom .pkcs12 in das .pem Format

openssl pkcs12 -in export.p12 -clcerts -nokeys -out $HOME/.globus/usercert.pem
openssl pkcs12 -in export.p12 -nocerts -out $HOME/.globus/userkey.pem

# The user certificate can safely be world readable, but userkey.pem
# must only be readable by you!
chmod 0400 $HOME/.globus/userkey.pem

Passwort des Private keys ändern

openssl rsa -in $HOME/.globus/userkey.pem -des3
# you will be prompted for the old passphrase, the new passphrase
# and to verify the new passphrase

Informationen aus dem Zertifikat anzeigen.

# viele Informationen
openssl x509 -text -in cert.pem

# Aussteller
openssl x509 -noout -in cert.pem -issuer

# subject
openssl x509 -noout -in cert.pem -subject

# in welchem Zeitraum ist es gültig?
openssl x509 -noout -in cert.pem -dates

# Der Hash wert des Zertifikates
openssl x509 -noout -in cert.pem -hash

# Der MD5 Fingerprint
openssl x509 -noout -in cert.pem -fingerprint

Zertifikat überprüfen

openssl verify cert.pem

Scan to Donate Bitcoin to der_metzger
Did you like this?
Tip der_metzger with Bitcoin

Postfix und Courier Verschlüsselung

Postfix

in der Datei /etc/postfix/main.cf die folgenden Zeilen einfügen, bzw anpassen:

Courier

als erstes den SSL-Key in das Courier eigene pem Format wandeln.

Anschließend in der Datei /etc/courier/imapd-ssl (Zeile 156) die pem Datei eintragen:

Und in der Datei /etc/courier/pop3d-ssl (Zeile 134) ebenso:

Abschließend die EMail Server neu laden und die Verschlüsselung ist einsatzbereit.

Scan to Donate Bitcoin to der_metzger
Did you like this?
Tip der_metzger with Bitcoin