![SSL ohne Zertifikat](https://rvso.com/image/38680/SSL%20ohne%20Zertifikat.png)
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:$port
wird 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, wget
es wird kein SSL-Zertifikat gefunden und ich weiß nicht, wie ich es bekomme.
Wie erhalte ich die Zertifikatsinformationen?
Antwort1
www.example.com
Normalerweise 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