Bagaimana cara memperbaiki masalah CA cert dengan Curl di Ubuntu 14.04?

13

Saya menggunakan Ubuntu 14.04. Ketika saya menggunakan ikal, saya mendapatkan kesalahan berikut:

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

Dari apa yang saya kumpulkan dari googling, lokasi CAfile yang dicari tidak benar untuk Ubuntu (dan tidak ada di komputer saya), /etc/ssl/certs/ca-certificates.crtadalah lokasi yang tepat.

Sebagian besar solusi melibatkan pengaturan variabel lingkungan CURL_CA_BUNDLEke lokasi yang tepat, atau menambahkan cacert=/etc/ssl/certs/ca-certificates.crtke file (baru dibuat) .curlrcdi direktori home saya. Saya sudah mencoba keduanya, dan tidak sepenuhnya menyelesaikan masalah. curl menemukan lokasi ini, tetapi masih tidak berfungsi, memberikan kesalahan:

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

Saya juga mencoba menghapus dan menginstal ulang curl di Ubuntu, dan memperbarui sertifikat CA saya dengan $ sudo update-ca-certificates --fresh yang memperbarui sertifikat, tetapi masih tidak membuat kesalahan 60 hilang.

Saya tidak memiliki pengetahuan tentang sertifikat CA, dan ragu saya sengaja menambahkan beberapa sertifikat yang ditandatangani sendiri di masa lalu. Mungkin karena kecelakaan, saya tidak tahu.

Adakah yang tahu bagaimana cara memperbaikinya? Apakah ada cara untuk benar-benar mulai segar dengan semua sertifikat saya? Atau apakah ada yang tahu bagaimana cara mencari tahu di mana sertifikat yang ditandatangani sendiri ini, lalu bagaimana cara menghapusnya?

PS: Saya tidak mau menggunakan flag -k (alias --insecure). Saya ingin ini berfungsi dengan aman.

themaninthinths
sumber

Jawaban:

10

Setelah meneliti dan mengerjakan ini selama beberapa hari terakhir ini saya berhasil, dan jawabannya menjadi agak sederhana.

Saya perlu mengatur file capath=/etc/ssl/certs/saya .curlrc.

Ini membuat ikal bekerja pada baris perintah. Untuk lebih lanjut mendapatkan ikal untuk bekerja di R (di mana saya pertama kali mengalami masalah) Saya juga perlu ada cacert=/etc/ssl/certs/ca-certificates.crtdi .curlrcfile saya seperti yang dicoba sebelumnya, kalau tidak terus mencari/etc/pki/tls/certs/ca-bundle.crt

Saya masih tidak tahu mengapa saya melihat kesalahan tentang sertifikat yang ditandatangani sendiri.

Berdasarkan beberapa temuan acak lainnya, saya juga mengunduh sertifikat dari situs web Curl dengan:

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

ke dalam certsdirektori yang sama . Setelah cafilemenunjuk ini berhasil juga. Pada akhirnya saya mengembalikannya ca-certificates.crtdan masih berfungsi.

Saya tidak mengerti persis mengapa ini berhasil atau apa yang sedang terjadi, tetapi itu diselesaikan.

themaninthinths
sumber
8

kunci cafile tidak bekerja untuk saya (curl 7.45.0) tetapi cacert (dari opsi --cacert) tidak. File .curlrc saya :

capath=/etc/ssl/certs/
cacert=/etc/ssl/certs/ca-certificates.crt
Bangsawan tinggi
sumber
1
ini bekerja untuk saya di Ubuntu 16.04!
Joost Döbken
0

Kami menghadapi masalah yang sama dengan salah satu program C ++ kami di Ubuntu 14.04.5. The .curlrc Metode itu tidak mengambil efek.

Ini diselesaikan dengan mengunduh ca-Certificate.crt ke /etc/ssl/certs/ca-certificates.crt dan membuat tautan simbolik ca-bundle.crt di bawah direktori / etc / pki / tls / certs / .

Semoga ini membantu!

Tamil
sumber
0

Setelah meneliti beberapa kali, saya berhasil, dan jawabannya berakhir dengan yang sederhana. Lakukan bertahap

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

Langkah 3 akan mengunduh file pem dalam folder sertifikat

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

.curlrc adalah file tersembunyi. periksa dengan ctrl + h di direktori home. jika tidak ada maka pada tipe terminal

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 Di sini saya menggunakan editor nano, tetapi Anda dapat menggunakan editor apa pun.

PyDevSRS
sumber