it-swarm.com.de

Hat Curl eine --no-check-Zertifikat-Option wie wget?

Ich versuche, eine Curl-Anfrage an einen unserer lokalen Entwicklungsserver zu senden, auf dem eine Entwicklungssite mit einem selbstsignierten SSL-Zertifikat ausgeführt wird. Ich benutze Curl von der Kommandozeile.

Ich habe einige Blog-Beiträge gesehen, in denen erwähnt wurde, dass Sie der Liste der Zertifikate hinzufügen oder ein bestimmtes (selbstsigniertes) Zertifikat als gültig angeben können. Gibt es jedoch eine allgemeine Möglichkeit, das SSL-Zertifikat zu überprüfen - nicht wie das --no-check-certificate das wget hat?

500
cwd

Ja. Aus der Manpage :

-k, - unsicher

(TLS) Standardmäßig wird jede SSL-Verbindungslocke als sicher überprüft. Mit dieser Option kann Curl auch für Serververbindungen fortgesetzt und betrieben werden, die ansonsten als unsicher gelten.

Die Serververbindung wird überprüft, indem sichergestellt wird, dass das Serverzertifikat den richtigen Namen enthält und erfolgreich mithilfe des Zertifikatspeichers überprüft wird.

Weitere Informationen finden Sie in dieser Online-Ressource: https://curl.haxx.se/docs/sslcerts.html

Siehe auch --proxy-unsicher und --cacert.

Das in diesem Manpage-Eintrag erwähnte Referenz beschreibt einige der spezifischen Verhaltensweisen von -k.

Diese Verhaltensweisen können mit curl -Anforderungen zum Testen von Seiten von BadSSL.com beobachtet werden

curl -X GET https://wrong.Host.badssl.com/
curl: (51) SSL: no alternative certificate subject name matches target Host name 'wrong.Host.badssl.com'

curl -k -X GET https://wrong.Host.badssl.com/
..returns HTML content...
657
Freiheit

Sie können den folgenden Befehl verwenden, um die Änderungen für alle Verbindungen zu übernehmen:

$ echo insecure >> ~/.curlrc

Unter Windows erstellen Sie einfach _curlrc Textdatei mit 'unsicherem' Text in Ihrem %HOME%, %CURL_HOME%, %APPDATA%, %USERPROFILE% oder %USERPROFILE%\Application Data Verzeichnis.

Der Vorteil der Verwendung der obigen Lösung besteht darin, dass sie für alle curl -Befehle funktioniert. Sie wird jedoch nicht empfohlen, da sie möglicherweise MITM-Angriffe einführt, indem eine Verbindung zu unsicheren und nicht vertrauenswürdigen Hosts hergestellt wird.

36
kenorb

Sie verwenden ein selbstsigniertes Zertifikat. Warum hängen Sie die Zertifizierungsstelle nicht an Ihr vertrauenswürdiges Zertifizierungsstellenpaket (Linux) an oder fügen sie dem vertrauenswürdigen Zertifikatspeicher (Windows) hinzu? Oder verwenden Sie einfach --cacert /Path/to/file mit dem Inhalt Ihrer vertrauenswürdigen selbstsignierten Zertifizierungsdatei.

Die anderen Antworten beantworten die Frage basierend auf dem wget vergleichbar. Die wahre Frage ist jedoch, wie ich eine vertrauenswürdige Verbindung mit einem selbstsignierten Zertifikat unter Verwendung von curl aufrechterhalten kann. Basierend auf vielen Kommentaren ist Sicherheit das Hauptanliegen bei jeder dieser Antworten. Die beste Antwort wäre, dem selbstsignierten Zertifikat zu vertrauen und die Sicherheitsüberprüfungen von curl intakt zu lassen.

8
user3258557