Come risolvere i problemi di certificazione CA con Curl in Ubuntu 14.04?


13

Sto usando Ubuntu 14.04. Quando uso l'arricciatura, ottengo il seguente errore:

curl: (77) error setting certificate verify locations: CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath:

Da quello che raccolgo da Google, la posizione del file CA che sta cercando non è corretta per Ubuntu (e non esiste sul mio computer), /etc/ssl/certs/ca-certificates.crtè la posizione corretta.

La maggior parte delle soluzioni ha comportato l'impostazione della variabile di ambiente CURL_CA_BUNDLEnella posizione corretta o l'aggiunta cacert=/etc/ssl/certs/ca-certificates.crtal .curlrcfile (appena creato) nella mia directory home. Ho provato entrambi e nessuno dei due ha risolto completamente il problema. il ricciolo sta trovando questa posizione, ma non funziona ancora, dando l'errore:

curl: (60) SSL certificate problem: self signed certificate in certificate chain

Ho anche provato a disinstallare e reinstallare curl in Ubuntu e ad aggiornare i miei certificati CA con i $ sudo update-ca-certificates --fresh quali ho aggiornato i certificati, ma non ho ancora eliminato l'errore 60.

Non sono così informato sui certificati CA, e dubito di aver aggiunto di proposito un certificato autofirmato in passato. Forse per caso, non lo so.

Qualcuno sa come risolvere questo problema? C'è un modo per ricominciare da capo con tutte le mie certs? O qualcuno sa anche come faccio a capire dove si trova questo certificato autofirmato e quindi come rimuoverlo?

PS: Non voglio usare il flag -k (aka --insecure). Voglio farlo funzionare in modo sicuro.

Risposte:


10

Dopo aver studiato e lavorato su questo negli ultimi due giorni, l'ho fatto funzionare e la risposta è risultata piuttosto semplice.

Ho dovuto impostare capath=/etc/ssl/certs/nel mio .curlrcfile.

Questo ha fatto arricciare lavorando sulla riga di comando. Per far funzionare ulteriormente il ricciolo in R (dove ho riscontrato il problema per la prima volta), dovevo anche averlo cacert=/etc/ssl/certs/ca-certificates.crtnel mio .curlrcfile come provato prima, altrimenti ha continuato a cercare/etc/pki/tls/certs/ca-bundle.crt

Non ho ancora idea del perché stavo vedendo l'errore sui certificati autofirmati.

Sulla base di alcuni altri risultati casuali ho anche scaricato un certificato dal sito web Curl con:

sudo wget http://curl.haxx.se/ca/cacert.pem

nella stessa certsdirectory. Avendo cafileindicato anche questo ha funzionato. Alla fine l'ho rimesso ca-certificates.crte funziona ancora.

Non capisco esattamente perché abbia funzionato o cosa stia succedendo, ma è stato risolto.


8

cafile key non funziona per me (curl 7.45.0) ma cacert (dall'opzione --cacert) funziona. Il mio file .curlrc :

capath=/etc/ssl/certs/
cacert=/etc/ssl/certs/ca-certificates.crt

1
questo ha funzionato per me su Ubuntu 16.04!
Joost Döbken,

0

Abbiamo riscontrato lo stesso problema con uno dei nostri programmi C ++ in Ubuntu 14.04.5. Il metodo .curlrc non ha avuto effetto.

Ciò è stato risolto scaricando ca-certificati.crt in /etc/ssl/certs/ca-certificates.crt e creando un collegamento simbolico ca-bundle.crt nella directory / etc / pki / tls / certs / .

Spero che sia di aiuto!


0

Dopo aver fatto delle ricerche per alcune volte, sono riuscito a farlo funzionare e la risposta è stata piuttosto semplice. Fai gradualmente

Step:1 Open terminal ctrl+alt+t
Step:2 cd /etc/ssl/certs/
Step:3 sudo wget http://curl.haxx.se/ca/cacert.pem 

Il passaggio 3 scaricherà il file pem nella cartella certs

  Step 4: Check if .curlrc file is available in your home folder or not. 

.curlrc è un file nascosto. controllare con ctrl + h nella home directory. se non lì, quindi sul tipo di terminale

Step 5:  nano ~/.curlrc 
Step 6: Now paste the below lines in the open file
        capath=/etc/ssl/certs/
        cacert=/etc/ssl/certs/ca-certificates.crt
Step 7: Now save the file and do your things using curl command.

NB Qui ho usato nano editor, ma puoi usare qualsiasi editor.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.