SSL ohne Zertifikat

SSL ohne Zertifikat

Ich versuche, ein Bash-Skript zu erstellen, das den SSL-Status meines Website-Clients überprüft und den Fehler zurückgibt. Aber für jede IP wget https://$ip:$portwird mir der folgende Fehler angezeigt:

ERROR: The certificate of 1.2.3.4 is not trusted
ERROR: The certificate of 1.2.3.4 hasn't got a know issuer

Wenn ich es mit Firefox versuche, habe ich das Zertifikat für jede IP. Also habe ich versucht, die Firefox-CA in ein Repository wie dieses zu kopieren:

wget http://$ip:$port --ca-directory=(directory of CA from Firefox)

Aber es ändert nichts.

Ich glaube, wgetes wird kein SSL-Zertifikat gefunden und ich weiß nicht, wie ich es bekomme.

Wie erhalte ich die Zertifikatsinformationen?

Antwort1

www.example.comNormalerweise werden SSL-Zertifikate für Hostnamen und nicht für IP-Adressen ausgestellt .
Wenn Sie also die IP-Adresse verwenden, kommt es zu einer Nichtübereinstimmung zwischen der URL, auf die Sie zugreifen, und dem Hostnamen, für den das Zertifikat ausgestellt wurde.

Zweitens ist das CA-Verzeichnis von Firefox möglicherweise nicht geeignet, da wget gemäß der Manpage Folgendes erfordert:

--ca-directory=VerzeichnisGibt das Verzeichnis an, das CA-Zertifikate im PEM-Format enthält. Jede Datei enthält ein CA-Zertifikat und der Dateiname basiert auf einem aus dem Zertifikat abgeleiteten Hash-Wert. ...

Ich denke, dass wget die OpenSSL-Bibliotheken verwendet, was es möglicherweise zu einem ausführlicheren Dienstprogramm macht, um den Zertifikatsstatus zu überprüfen, beispielsweise in einer Abfrage zum Ermitteln des Ablaufdatums eines SSL-Zertifikats:

 echo "GET /" | openssl s_client -connect servername:port  | openssl x509 -noout -dates

verwandte Informationen