Vom docs:
--cacert (HTTPS) Weist curl die angegebene Zertifikatsdatei zu verwenden, um die Peer-zu überprüfen. Die Datei kann mehrere CA-Zertifikate enthalten. Die Zertifikate müssen im PEM-Format vorliegen. Wenn diese Option mehrmals verwendet wird, wird die letzte verwendet.
--capath (HTTPS) Weist curl an, das angegebene Zertifikatverzeichnis zur Überprüfung des Peers zu verwenden. Die Zertifikate müssen im PEM-Format vorliegen und das Verzeichnis muss mit dem mitgelieferten Dienstprogramm c_rehash mit openssl verarbeitet worden sein. Zertifikatverzeichnisse werden unter Windows nicht unterstützt (da c_rehash Symbolink-Links verwendet, um sie zu erstellen). Die Verwendung von --capath kann curl ermöglichen, https-Verbindungen viel effizienter als mit --cacert herzustellen, wenn die Datei --cacert viele CA-Zertifikate enthält. Wenn diese Option mehrmals verwendet wird, wird die letzte verwendet.
Wenn Sie also --cacert angeben, werden die CA-Zertifikate in der angegebenen Datei gespeichert. Diese CA-Zertifikate werden verwendet, um die Zertifikate von Remote-Servern zu überprüfen, mit denen cURL eine Verbindung herstellt.
Die Option --capath wird verwendet, um ein Verzeichnis anzugeben, das die CA-Zertifikate und nicht eine einzelne Datei enthält. Das c_rehash-Dienstprogramm sollte verwendet werden, um das Verzeichnis vorzubereiten, d. H. Die notwendigen Verbindungen zu erzeugen. Der Hauptvorteil bei der Verwendung von --capath scheint zu sein, dass es effizienter ist als der --cacert-Ansatz mit einer einzigen Datei, wenn Sie viele CA-Zertifikate haben.
Hier ist ein Skript, das wohl tut, was c_rehash tut:
for file in *.pem; do ln -s $file `openssl x509 -hash -noout -in $file`.0; done
Mit beiden Optionen sollten Sie nur enthalten CA-Zertifikate von CAs vorsichtig sein, denen Sie vertrauen. Wenn Sie zum Beispiel wissen, dass die Remote-Server immer mit Zertifikaten von YourCompanyCA ausgestellt werden sollten, dann ist dies das einzige CA-Zertifikat, das Sie hinzufügen sollten.
Warum effizienter? Weil es das cert über den filesytem Namen nachschlagen kann? – Xailor
@Xepoch Ja, ich denke, es erstellt Dateien mit dem Hash des Subjektnamens jedes Zertifikats und verbindet diese Hash-Dateien dann wieder mit dem ursprünglichen Zertifikat. Dies macht Lookups schneller. Ich habe ein kleines Skript hinzugefügt, das wahrscheinlich tut, was c_rehash tut, um es vielleicht klarer zu machen. – PhilR
Da Ubuntu über ein ca-Zertifikatverzeichnis verfügt, wenn ich die neueste ca-bundle.crt von der Curl Haxx-Website herunterladen möchte, was soll ich tun? Einfach die Datei in das Verzeichnis fallen lassen und diesen Befehl ausführen? Oder ist eine ubuntu-spezifische Konfiguration erforderlich? – CMCDragonkai