Nützliche Usecases für OpenSSL.

TLS Verbindung zum Server prüfen

Was bei https einfach mit ssllabs.com zu machen ist, geht bei anderen Protokollen nicht mehr, auch hier ist OpenSSL der Problemlöser.

echo | openssl s_client -connect example.com:443 -servername example.com -showcerts # Typischer https Server
echo | openssl s_client -connect mail.example.com:25 -starttls smtp -showcerts # Macht unser Mailserver bei STARTTLS alles richtig?

Damit kann man auch gleich herausfinden, ob ein Server Client Zertifikate nutzt. Wo Client Zertifikate sind, gibt es auch eine PKI…

OCSP Validierung

Hier am Beispiel Let's Encrypt. Zunächst muss man sich die beteiligten Zertifikate beschaffen, dann kann die Validierung beginnen.

echo | openssl s_client -connect ip6.li:443 -servername ip6.li -showcerts
openssl ocsp -CAfile letsencrypt.intermediate.pem -issuer letsencrypt.intermediate.pem -cert ip6.li.pem -url http://r3.o.lencr.org -text

Das Server Zertifkat wurde unter ip6.li.pem und as Let's Encrypt Intermediate CA Zertifikat, das gleichzeitig von Let's Encrypt als OCSP Signing Zertifikat genutzt wird, unter letsencrypt.intermediate.pem gespeichert. Nun kann mit OpenSSL eine Validierung erfolgen.

Signatur aus Apple iOS Profile entfernen

Manchmal muss man aus einem signierten Profile den Klartext aus dem signierten File extrahieren, ohne das Zertifikat zu validieren, z.B. falls man das Root Zertifikat nicht mehr bekommen kann.

openssl smime -verify -noverify -inform DER -in profile.mobileconfig -out profile.mobileconfig.xml

In profile.mobileconfig.xml hat man nun den Klartext.