Loading...
de

Nutzer-Blogs

Suchergebnisse für: "debugging"
Martin Brunzel Free
Ich spiele schon seit einigen Jahren mit Computern. Dabei setzt man dann auch mal einen SMTP-Server oder einen Webserver auf. Und dabei kommt es dann auch mal vor, dass man eben nicht nur wissen möchte, was der Browser oder der Mailclient sagt ("Connection failed" - Toll...), sondern eben auf Protokollebene wissen möchte, wieso die Verbindung fehlgeschlagen ist.

Ein tolles Tool dafür war immer telnet. "telnet localhost 80 - GET http://localhost/" - und schon hatte man, was der Browser bekam. Direkt, ungeschönt, Byte für Byte. Gut, es ist noch eine alte Version von http (0.9), aber daran stören sich die meisten Server nicht. Und wenn doch, tippe ich halt ein wenig mehr und nehme http/1.1. Wie aber macht man das mit https?

Heute stand ich vor genau diesem Problem: Eine https-Verbindung zu einem Webserver aufbauen. Der naheliegendste Versuch? "telnet localhost 443" - "GET https://localhost/" führte nur dazu, dass der Server meckerte: "400 Bad Request" Über einen SSL-Port nimmt er eben keine nicht-SSL-gesicherten Verbindungen an. Schön, sicher, aber nicht zielführend für mich.

Nach etwas Recherche habe ich dann gnutls gefunden. gnutls gibt es in der Unterform "gnutls-cli", was sehr analog zu telnet funtioniert: "gnutls-cli localhost -p 443" ist das Pendant zum Telnet-Befehl. Die positive Überraschung: Es wird direkt die SSL-Verbindung aufgebaut, und das Zertifikat des Servers auch noch gleich sauber auseinander genommen. "subject 'CN=localhost', issuer 'C=US,O=Let's Encrypt Auhtoriy X1', RSA key 2048 bits, ..." Detailliert werden die Fingerprints, die IDs, alles mögliche aufgeführt. Ich kann mir also sogar anschauen, ob vielleicht ein falsches Zertifikat für die Verbindung verwendet wird. Danach geht's ganz normal weiter, wie beim Telnet. Von der zugrundeliegenden Verschlüsselung merkt man nichts.

Ab heute ist meine Toolbox also um ein weiteres Werkzeug ergänzt: gnutls.

.. und ja, ich habe oben einen Fehler eingebaut: Für localhost wird man kein Zertifikat bekommen, das von Let's Encypt unterschrieben ist. :-) Da es sich hier aber nur um ein Beispiel handelt, sollte das nicht ernsthaft stören.