Saya mengalami masalah di mana bundel CA yang telah dibundel dengan versi CURL saya sudah usang.
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html
Membaca dokumentasi tidak membantu saya karena saya tidak mengerti apa yang perlu saya lakukan atau bagaimana melakukannya. Saya menjalankan RedHat dan perlu memperbarui bundel CA. Apa yang harus saya lakukan untuk memperbarui bundel CA saya di RedHat?
sumber
Cara yang disarankan untuk melakukan itu pada sistem RHEL 6+ adalah dengan menggunakan alat pembaruan-ca-trust , yang sekarang diinstal secara default.
Karena itu, Anda hanya perlu meletakkan file crt ke
/etc/pki/ca-trust/source/anchors/
dan untuk menjalankan alat. Kerja selesai. Ini aman untuk dilakukan, Anda tidak perlu melakukan backup apa pun. Halaman manual lengkap dapat ditemukan di sini: https://www.mankier.com/8/update-ca-trustsumber
RHEL memberikan sertifikat Mozilla CA sebagai bagian dari
ca-certificates
paket (instal iniyum
jika belum diinstal). Untuk memberitahu cURL untuk menggunakan ini, gunakan--cacert
parameter seperti itu.sumber
yum install ca-certificates
dan mendapatkanNo package ca-certificates available
ca-certificates.noarch 0:2014.1.98-70.0.el7_0
- sayangnya tidak menyelesaikan masalah saya, tetapi saya pikir saya akan menambahkan informasi ini.Mungkin tergantung versi Redhat mana. Anda dapat menemukan paket mana yang benar-benar memperbarui file dengan melakukan:
Hasil saya menunjukkan bahwa openssl-0.9.8e-12.el5 perlu diperbarui.
Jika tidak ada sertifikat yang diperbarui dalam distribusi Anda, Anda harus memperbarui secara manual, sesuai jawaban Nada.
sumber
Sejak komentar Dan Pritts, Red Hat telah memperbarui bundel sertifikat untuk rilis RHEL yang didukung lebih sering; Anda bisa melihatnya dengan cukup mudah di changelog paket. Sertifikat RHEL 6 diperbarui dua kali pada tahun 2013 dan dua kali pada tahun 2014.
Semua RHEL dan distro terkait / klon / turunan menyediakan file bundel di
/etc/pki/tls/certs/ca-bundle.crt
, dan file yang sama di/etc/pki/tls/cert.pem
(pada distro yang lebih lamacert.pem
adalah symlink keca-bundle.crt
; pada distro yang lebih baru keduanya symlink ke output file denganupdate-ca-trust
).Dalam RHEL 6 dan yang lebih baru, bundel adalah bagian dari paket 'ca-sertifikat'. Di RHEL 5 dan sebelumnya itu adalah bagian dari paket 'openssl'.
Di RHEL 6 dengan pembaruan https://rhn.redhat.com/errata/RHEA-2013-1596.html dan RHEL yang lebih baru, tersedia sistem 'sertifikat sistem bersama' (Anda harus menjalankan
update-ca-trust enable
untuk mengaktifkannya) dan yang terbaik Metode yang diberikan oleh lzap. Manfaat dari sistem ini adalah ia berfungsi untuk aplikasi berbasis NSS dan GnuTLS serta yang berbasis OpenSSL. Perhatikan bahwa Anda juga dapat tidak mempercayai sertifikat dengan menempatkannya di direktori/etc/pki/ca-trust/source/blacklist/
.Di RHEL 5 dan yang lebih lama (dan RHEL 6 jika Anda tidak ingin menggunakan sistem baru), Anda dapat mempercayai CA tambahan dengan menempatkan file sertifikat PEM yang diformat dengan ekstensi
.pem
di / etc / pki / tls / certs dan berjalanc_rehash
(mungkin juga perluyum install /usr/bin/c_rehash
). Ini hanya akan berfungsi untuk perangkat lunak yang menggunakan toko kepercayaan default OpenSSL. Ini lebih baik daripada mengedit atau mengganti file bundel karena memungkinkan Anda untuk terus menerima pembaruan resmi ke file bundel.Perangkat lunak yang menggunakan salah satu lokasi file bundel secara langsung (alih-alih meminta OpenSSL untuk menggunakan sistem penyimpanan kepercayaan default) tidak akan menghargai perubahan; jika Anda memiliki perangkat lunak seperti itu, Anda terjebak mengedit file bundel (atau meningkatkan perangkat lunak). Perangkat lunak yang tidak menggunakan OpenSSL sama sekali tidak akan menghormati sertifikat yang ditambahkan.
sumber
Saya hanya harus melakukan ini pada kotak RHEL5 lama. Saya menekan tombol 22 ... curl akan menolak unduhan https karena sertifikat pada mesin terlalu tua untuk memvalidasi sertifikat curl.haxx.se.
Saya menggunakan opsi --insecure dari curl untuk memaksa unduhan https. (Ya, aku tahu ... itu "tidak aman".)
sumber
Untuk RHEL 6 , saya dapat memperbaikinya dengan memperbarui dan menginstal ulang paket CA certs terbaru dari Red Hat:
(Dalam kasus saya, ini cukup untuk memungkinkan sertifikat penandatanganan "Let's Encrypt Authority X3" yang lebih baru dipercaya.)
sumber