Dal docs:
--cacert (HTTPS) Indica curl per utilizzare il file certificato specificato per verificare il peer. Il file può contenere più certificati CA. I certificati devono essere in formato PEM. Se questa opzione viene utilizzata più volte , verrà utilizzato l'ultimo.
--capath (HTTPS) Indica al ricciolo di utilizzare la directory del certificato specificata per verificare il peer. I certificati devono essere in formato PEM e la directory deve essere stata elaborata utilizzando l'utilità c_rehash fornita con con openssl. Le directory dei certificati non sono supportate in Windows (poiché c_rehash utilizza i collegamenti symbolink per crearle). L'utilizzo di --capath può consentire a curl di realizzare connessioni https in modo molto più efficiente rispetto a utilizzando --cacert se il file --cacert contiene molti certificati CA. Se questa opzione viene utilizzata più volte, verrà utilizzata l'ultima.
Quindi, se si specifica --cacert, i certificati CA sono memorizzati nel file specificato. Questi certificati CA vengono utilizzati per verificare i certificati dei server remoti a cui si connette cURL.
L'opzione --capath viene utilizzata per specificare una directory contenente i certificati CA anziché un singolo file. L'utilità c_rehash dovrebbe essere utilizzata per preparare la directory, ad esempio, creare i collegamenti necessari. Il vantaggio principale dell'utilizzo di --capath sembrerebbe essere più efficiente rispetto all'approccio con un singolo file --cacert se si dispone di molti certificati CA.
Ecco uno script che probabilmente fa quello che fa c_rehash:
for file in *.pem; do ln -s $file `openssl x509 -hash -noout -in $file`.0; done
Con entrambe le opzioni che si deve fare attenzione ad includere solo i certificati CA dalla CA di fiducia. Se, ad esempio, sai che i server remoti dovrebbero sempre essere emessi con certificati da YourCompanyCA, allora questo è l'unico certificato CA che dovresti includere.
Perché più efficiente? Perché può cercare il certificato tramite il nome del file system? – Xailor
@Xepoch Sì, penso che crei file con l'hash del nome soggetto di ogni certificato e quindi collega questi file hash al certificato originale. Questo rende le ricerche più veloci. Ho aggiunto un piccolo script che probabilmente fa ciò che c_rehash fa per renderlo più chiaro. – PhilR
Dato che Ubuntu ha una directory con certificato ca, se voglio scaricare il più recente ca-bundle.crt dal sito Web di Curl Haxx, allora cosa dovrei fare? Basta trascinare il file nella directory ed eseguire quel comando? O è richiesta una configurazione specifica per Ubuntu? – CMCDragonkai