Wenn man prüfen möchte, wie lange die Zertifikate des eigenen Webservers noch gültig sind, kann man ja einfach die Website aufrufen und sich im Browser die Zertifikatsinformationen anzeigen lassen. Beim Mailserver ist das nicht so einfach. Es gibt aber ein paar Kommandos, die einem helfen.
(von https://www.shellhacks.com/openssl-check-ssl-certificate-expiration-date/ und https://support.plesk.com/hc/en-us/articles/213961665-How-to-verify-that...)
Für IMAPS z.B:
echo | openssl s_client -servername <SERVERNAME> -connect <SERVERIP>:993 2>/dev/null | openssl x509 -noout -dates
und für SMTP (via STARTTLS):
echo | openssl s_client -starttls smtp -showcerts -servername <SERVERNAME> -connect <SERVERIP>:587 2>/dev/null | openssl x509 -noout -dates
oder mit folgendem Mini-Script, wenn man das öfter braucht:
#! /bin/bash
SERVERNAME=mx.mydomain.com
SERVERIP=localhost
echo "CHECK SMTP (starttls on :587)"
echo | openssl s_client -starttls smtp -showcerts -servername "$SERVERNAME" -connect "$SERVERIP":587 2>/dev/null | openssl x509 -noout -dates
echo
echo "CHECK SMTP (ssl on :465)"
echo | openssl s_client -servername "$SERVERNAME" -connect "$SERVERIP":465 2>/dev/null | openssl x509 -noout -dates
echo
echo "CHECK IMAP (ssl on :993)"
echo | openssl s_client -servername "$SERVERNAME" -connect "$SERVERIP":993 2>/dev/null | openssl x509 -noout -dates
echo
echo "CHECK POP (ssl on :995)"
echo | openssl s_client -servername "$SERVERNAME" -connect "$SERVERIP":995 2>/dev/null | openssl x509 -noout -dates
echo
SERVERNAME entspricht dabei dem Servernamen, der auch im Zertifikat verwendet wurde. SERVERIP natürlich der Adresse des Rechners (so, wie er von der aktuellen Maschine aus erreichbar ist. Am Server selber reicht hier meist "localhost").
(Edit: Ports im Miniscript korrigiert - Danke an Richard Gertis für den Hinweis!)
- Blog von Peter Schmidt
- 7690 Aufrufe