Menü Schließen

Mailserver Zertifikat von FTP IMAP POP3 und SMTP überprüfen

Postfix - Logo

Hin und wieder gibt es ein Problem bei der Zertifikatserneuerung mittels Lets‘ Encrypt und dem laufendem Mail Transfer Agent (MTA) Postfix bzw. dem IMAP Server Dovecot. Ebenso kann man auch das Zertifikat für den FTP Dienst prüfen. Nachfolgend zeige ich auf, wie man das Zertifikat per Linux Bash und OpenSSL abfragen und prüfen kann.

Nachfolgend ist <mail.example.tdl> durch den abzufragenden Mailserver zu ersetzen.

Mailserver und übliche Ports

Dies sind die üblichen Ports und deren Verschlüsselungen für den Mailverkehr:

AktionProtokollVerschlüsselungPort
Senden
SMTPkeine25
SMTPTLS25
SMTPSSSL465
Empfangen
POP3keine110
POP3TLS110
POP3SSSL995
IMAPkeine143
IMAPTLS143
IMAPSSSL993

IMAP mittels SSL und Port 993 – Dovecot

Um die Abfrage nach dem Zertifikat zu starten folgendes in der Konsole eingeben:

# openssl s_client -showcerts -connect <mail.example.tdl>:993 -servername <mail.example.tdl>

Ist dies erfolgreich, sollte folgendes zu sehen sein:

Certificate chain
 0 s:CN = mail.example.tdl
   i:C = US, O = Let's Encrypt, CN = R3
-----BEGIN CERTIFICATE-----
.....
Server certificate
subject=CN = mail.example.tdl
.....
read R BLOCK
* OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SPECIAL-USE XLIST LITERAL+ AUTH=PLAIN AUTH=LOGIN] Dovecot (Debian) ready.

POP3 mittels SSL und Port 995 – Dovecot

Die Abfrage sieht nun wie folgt aus:

# openssl s_client -showcerts -connect <mail.example.tdl>:995 -servername <mail.example.tdl>

Eine positive Rückmeldung dann wie folgt:

Certificate chain
 0 s:CN = mail.example.tdl
   i:C = US, O = Let's Encrypt, CN = R3
-----BEGIN CERTIFICATE-----
....
Server certificate
subject=CN = mail.example.tdl

issuer=C = US, O = Let's Encrypt, CN = R3
....
read R BLOCK
+OK Dovecot (Debian) ready.

Ein abgelaufenes Zertifikat wird wie folgt angezeigt:

Server certificate
subject=CN = mail.example.tdl

issuer=C = US, O = Let's Encrypt, CN = R11

---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 3648 bytes and written 394 bytes
Verification error: certificate has expired

SMTP mittels SSL und Port 465 – Postfix

Die Abfrage ist wie folgt:

# openssl s_client -showcerts -connect <mail.example.tdl>:465 -servername <mail.example.tdl>

Die erfolgreiche Rückmeldung:

Certificate chain
 0 s:CN = mail.example.tdl
   i:C = US, O = Let's Encrypt, CN = R3
-----BEGIN CERTIFICATE-----
....
Server certificate
subject=CN = mail.example.tdl

issuer=C = US, O = Let's Encrypt, CN = R3
....
read R BLOCK
220 mail.example.tdl ESMTP Postfix

SMTP mittels TLS/StartTLS und Port 25 oder 587

Die Abfrage hier am Beispiel von Port 25:

# openssl s_client -starttls smtp -showcerts -connect <mail.example.tdl>:25 -servername pitvsrv04.purwin-it.de

Das Ergebnis:

Certificate chain
 0 s:CN = mail.example.tdl
   i:C = US, O = Let's Encrypt, CN = R3
-----BEGIN CERTIFICATE-----
....
Server certificate
subject=CN = mail.example.tdl

issuer=C = US, O = Let's Encrypt, CN = R3
....
....
250 CHUNKING
....
read R BLOCK
quit
221 2.0.0 Bye

FTP StartTLS Zertifikat auf Port 21 abfragen

Nachfolgend frage ich das FTP Zertifikat ab und lasse mir das Enddatum der Gültigkeit und den Fingerprint für SHA256 anzeigen.

# openssl s_client -showcerts -connect <ftp.example.tdl>:21 -starttls ftp -servername <ftp.example.tdl> |openssl x509 -enddate -noout -fingerprint -sha256
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = R11
...
notAfter=Nov  5 00:03:48 2024 GMT
SHA256 Fingerprint=E2:4A:3C:XX:E3:4E:71:08:D3:44:78:C1:F2:XX:A6:AD:10:3B:CA:XX:05:6A:57:DA:66:8B:43:XX:C0:9A:E1:1B

Zertifikat Ablaufdatum anzeigen

Um sich das Ablaufdatum der Zertifikate anzeigen zu lassen einfach folgendes eingeben, den Port entsprechend tauschen:

# openssl s_client -showcerts -connect <mail.example.tdl>:993 -servername <mail.example.tdl> | openssl x509 -enddate -noout

Die Ausgabe sieht dann z.B. wie folgt aus:

notAfter=Jul 23 06:42:30 2022 GMT

Zertifikat SHA1 und SHA256 Fingerprint anzeigen

Um ein Zertifikat zu prüfen kann man sich den Fingerprint anzeigen und SHA1 und SHA256 anzeigen.

# hinter noout für SHA1 folgendes hinzufügen
-fingerprint

# hinter noout für SHA256 folgendes hinzufügen
-fingerprint -sha256

Thats it … Have Fun!

1 Kommentar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert