News zu Tech Portfolio

Cheat Sheet: OpenSSL für Zertifikate

Headergrafik Cheat Sheet openssl

Ab und zu spült mir der Al­go­rith­mus ver­schie­de­ne “Cheat Sheets” in die Timeline. Viele davon enthalten mehr oder weniger voll­stän­di­ge Samm­lun­gen von grund­le­gen­den Befehlen z.B. für Podman, Docker und Ku­ber­netes oder auch Ansible, Terraform und unzählige weitere Tools.

Das ist durchaus in­ter­es­sant. Trotzdem frage ich mich häufig, ob ein Cheat Sheet mit den Basics von 200 ver­schie­de­nen Tools im Ar­beits­all­tag wirklich weiterhilft.

Deshalb teile ich hier künftig Tipps aus meinem Admin-Alltag – praxisnah, ohne Buzzwords und mit dem Fokus auf Dinge, die sich im täglichen Betrieb bewährt haben. Heute habe ich zwei einfache OpenSSL-Befehle für dich, die dir in typischen All­tags­si­tua­tio­nen wei­ter­hel­fen werden.

Profilbild Michael
Michael Decker
In­fra­struk­tur Ad­mi­nis­tra­tor
ASPICON

Ab und zu spült mir der Al­go­rith­mus ver­schie­de­ne “Cheat Sheets” in die Timeline. Viele davon enthalten mehr oder weniger voll­stän­di­ge Samm­lun­gen von grund­le­gen­den Befehlen z.B. für Podman, Docker und Ku­ber­netes oder auch Ansible, Terraform und unzählige weitere Tools.

Das ist durchaus in­ter­es­sant. Trotzdem frage ich mich häufig, ob ein Cheat Sheet mit den Basics von 200 ver­schie­de­nen Tools im Ar­beits­all­tag wirklich weiterhilft.

Deshalb teile ich hier künftig Tipps aus meinem Admin-Alltag – praxisnah, ohne Buzzwords und mit dem Fokus auf Dinge, die sich im täglichen Betrieb bewährt haben. Heute habe ich zwei einfache OpenSSL-Befehle für dich, die dir in typischen All­tags­si­tua­tio­nen wei­ter­hel­fen werden.

Profilbild Michael
Michael Decker
In­fra­struk­tur Ad­mi­nis­tra­tor
ASPICON

Stell dir vor, du bist ein “DevOps Engineer” – oder wie das früher mal hieß: “Linux Admin” – und möchtest nach einem De­ploy­ment oder einer In­fra­struk­tur­än­de­rung schnell prüfen, ob ein Service wie erwartet er­reich­bar ist.

Typische Si­tua­tio­nen sind beispielsweise:

  • Kontrolle nach Deployments
  • Un­ter­su­chung von Störungen
  • Netzwerk- und Infrastruktur-Changes
  • “Trans­pa­ren­te” Proxies


In genau solchen Fällen gehören für mich netcat und openssl zu den Werk­zeu­gen, auf die ich immer wieder zurückgreife.

1. Schnell prüfen, ob ein Service er­reich­bar ist

Mein erster Griff geht fast immer zu netcat (nc). Wenn ich her­aus­fin­den möchte, ob ein Dienst überhaupt auf dem er­war­te­ten Host und Port lauscht, reicht oft schon ein einfacher TCP-Check:

nc -vz <HOSTNAME oder IP> <PORT>

Damit lässt sich in wenigen Sekunden fest­stel­len, ob grund­sätz­lich eine TCP-Ver­bin­dung aufgebaut werden kann.

2. Wenn der Port offen ist – der Client aber trotzdem nicht funktioniert

Manchmal reicht ein offener Port al­ler­dings nicht aus. Der Dienst ist er­reich­bar, der Client verbindet sich trotzdem nicht oder das Zer­ti­fi­kat scheint Probleme zu ver­ur­sa­chen. Die ent­spre­chen­den Fehler- oder Log­mel­dun­gen sind nicht immer so eindeutig, wie man sich das wünscht.

In diesen Fällen ist folgender Befehl für mich einer der wert­volls­ten Helfer.

In­stru­ie­re OpenSSL doch bitte, als Client mit FQDN an Port PORT zu sprechen und zu fragen, wie das Zer­ti­fi­kat aussieht.

openssl s_client -showcerts -connect <HOSTNAME oder IP>:<PORT>

Beispiel:

openssl s_client -showcerts -connect foo.bar.lan:25

Der Befehl baut eine Ver­bin­dung zum Dienst auf und zeigt unter anderem das prä­sen­tier­te Zer­ti­fi­kat an.

Noch über­sicht­li­cher wird die Ausgabe mit:

openssl s_client -showcerts -connect <FQDN>:<PORT> </dev/null | openssl x509 -text
Damit erhältst du die Zer­ti­fi­kats­in­for­ma­tio­nen in einer deutlich besser lesbaren Form. An­schlie­ßend kannst du die Ausgabe nach Belieben weiter filtern – bei­spiels­wei­se mit grep, um gezielt nach In­for­ma­tio­nen wie Issuer, Subject, Not Before oder Not After zu suchen. 

SNI nicht vergessen

Gerade bei Load Balancern oder Web­ser­vern mit mehreren vir­tu­el­len Hosts kann es notwendig sein, zu­sätz­lich den ge­wünsch­ten Ser­ver­na­men per SNI (Server Name In­di­ca­ti­on) mit­zu­ge­ben. An­dern­falls bekommst du mög­li­cher­wei­se das falsche Zer­ti­fi­kat präsentiert.

Das sieht dann bei­spiels­wei­se so aus:

openssl s_client -showcerts \
-servername bar.foo.lan \
-connect bar.foo.lan:443 </dev/null | openssl x509 -text

Fazit

Natürlich kann OpenSSL deutlich mehr, als nur als Client auftreten. Zusammen mit Werk­zeu­gen wie nc, curl, dig, ss oder netstat gehört es für mich zu den wich­tigs­ten Helfern bei der täglichen Fehlersuche.

Wenn es darum geht, Services mit TLS-Zer­ti­fi­ka­ten schnell zu über­prü­fen, lassen sich mit den beiden vor­ge­stell­ten Befehlen die Feh­ler­quel­len schnell und zu­ver­läs­sig eingrenzen.

Hier findest du weitere Infos und DBA Tipps aus unserem News & Insights Bereich.

icon-arrow_right_medium-violet-blue.svg

Share this article

Facebook 
Twitter 
LinkedIn 
XING 
WhatsApp 
Email