RHEL sebenarnya tidak menyediakan apa pun yang dapat digunakan sebagai 'direktori sertifikat' untuk tujuan kepercayaan CA. Untuk OpenSSL, direktori sertifikat - 'CApath' - adalah direktori yang berisi file sertifikat individual (dalam format PEM atau format 'sertifikat tepercaya' OpenSSL yang diperluas), dengan nama dalam format tertentu berdasarkan hash dari nama subjek sertifikat. Biasanya ini dicapai dengan meletakkan file dengan nama yang dapat dibaca manusia dan .pem
ekstensi di direktori dan berjalan c_rehash
di atasnya (lihatman c_rehash
). Untuk GnuTLS sejak 3.3.6 (sebelum itu GnuTLS tidak memiliki dukungan direktori), itu hanya direktori dengan file PEM di dalamnya; GnuTLS akan mencoba dan memuat setiap file dalam direktori dan berhasil pada PEM-ish apa pun (tidak dapat menangani format 'sertifikat tepercaya' OpenSSL). Saya tidak benar-benar yakin apakah NSS benar-benar dapat menggunakan direktori yang penuh dengan file sertifikat individu sebagai trust root, tetapi dokumentasi OpenLDAP sepertinya menyarankan itu bisa (tetapi jika direktori tersebut juga berisi database NSS, ia akan memberikan prioritas itu). Apapun, RHEL tidak memiliki apa pun seperti direktori yang penuh dengan file sertifikat CA individu.
Debian dan turunannya menyediakan /etc/ssl/certs
dalam format ini; /etc/ssl/certs
adalah lokasi toko kepercayaan kanonik di Debian, dan IMO apa pun yang menyediakannya pada dasarnya harus menjabarkannya seperti milik Debian, karena Debian memiliki direktori yang ditata kurang lebih dengan cara yang sama sejak 1999. RHEL memiliki /etc/ssl/certs
direktori, tetapi masih dalam tidak dalam format ini - tidak mengandung file sertifikat individual sama sekali. Anda tidak dapat menggunakannya sebagai CApath. Jujur, di RHEL (dan Fedora, dan turunannya) direktori itu pada dasarnya adalah jebakan. Jangan gunakan itu. (Lihat https://bugzilla.redhat.com/show_bug.cgi?id=572725 dan https://bugzilla.redhat.com/show_bug.cgi?id=1053882untuk beberapa latar belakang mengapa itu ada di tempat pertama, dan bagaimana saya mencoba untuk memperbaikinya). Jadi saya pikir Anda benar tentang apa yang terjadi, tetapi salah tentang alasannya. OpenLDAP tidak melakukan kesalahan, dan itu tidak gagal karena "ca-bundle.trust.crt ... adalah basis data kunci / sertifikat Mozilla NSS" (yang disebut cert8/9.db
dan key3/4.db
, dan yang di seluruh sistem di RHEL tinggal /etc/pki/nssdb
) , itu hanya gagal karena /etc/ssl/certs
tidak dapat digunakan sebagai 'direktori sertifikat' sama sekali.
RHEL tidak menyediakan apa pun yang dapat digunakan sebagai toko kepercayaan gaya CApath di tempat lain, baik. Penyimpanan trust sistem RHEL disediakan sebagai file bundel PEM tunggal ('CAfile' dalam istilah OpenSSL), yang dapat ditemukan di /etc/pki/tls/certs/ca-bundle.crt
dan /etc/pki/tls/cert.pem
. Ini juga dapat ditemukan pada /etc/ssl/certs/ca-bundle.crt
saat /etc/ssl/certs
sebenarnya hanya symlink ke /etc/pki/tls/certs
, tetapi lokasi itu tidak kanonik dan benar-benar tidak boleh digunakan oleh apa pun. RHEL juga menyediakan bundel dalam format 'sertifikat tepercaya' OpenSSL sebagai /etc/pki/tls/certs/ca-bundle.trust.crt
.
Hal yang benar untuk dilakukan, seperti yang Anda ketahui, adalah menggunakan file bundel yang disediakan sistem. Jawaban Anda akan berhasil, tetapi untuk alasan yang disebutkan di atas, saya akan sangat menyarankan TLS_CACERT=/etc/pki/tls/certs/ca-bundle.crt
atau TLS_CACERT=/etc/pki/tls/cert.pem
lebih TLS_CACERT=/etc/ssl/certs/ca-bundle.crt
.
(Tidak ada yang baru dalam hal ini, btw, tetapi kebingungan pada jalinan luas. RH dan turunannya tidak pernah memberikan direktori-penuh-sertifikat, tidak pernah. Mereka telah menyediakan file bundel sejak tahun 2000. Itu adalah pindah dari / usr / share / ssl ke / etc / pki / tls pada tahun 2005. Debian memiliki keduanya /etc/ssl/certs
sebagai direktori gaya CApath dan /etc/ssl/certs/ca-certificates.crt
sebagai file bundel kurang lebih sejak zaman batu.)