RHEL aslında CA güven amaçları için 'sertifika dizini' olarak kullanılabilecek hiçbir şey sağlamaz. OpenSSL için, bir sertifika dizini - 'CApath' - sertifikanın konu adının bir karmasını temel alan belirli bir biçimde adları olan ayrı sertifika dosyaları (PEM biçiminde veya OpenSSL'nin genişletilmiş 'güvenilir sertifika' biçiminde) içeren bir dizindir. Genellikle bu, insanlar tarafından okunabilir adlara ve .pem
uzantılara sahip dosyaları bir dizine koyarak ve üzerinde çalışarak elde edilir c_rehash
(bkz.man c_rehash
). 3.3.6'dan beri GnuTLS için (bundan önce GnuTLS'de dizin desteği yoktu), içinde sadece PEM dosyaları bulunan bir dizin; GnuTLS, dizindeki her dosyayı dener ve yükler ve PEM-ish'de başarılı olur (OpenSSL'nin 'güvenilir sertifika' biçimini işleyemez). Dürüst olmak gerekirse NSS aslında bir şekilde bir kök kök olarak bireysel sertifika dosyaları dolu bir dizin kullanabilirsiniz emin değilim, ancak OpenLDAP'ın belgeleri bunu önermek gibi görünüyor (ancak dizin de bir NSS veritabanı içeriyorsa bu öncelik verecektir). Ne olursa olsun, RHEL'in tek tek CA sertifika dosyalarıyla dolu bir dizini yoktur.
Debian ve türevleri /etc/ssl/certs
bu biçimde sağlar; /etc/ssl/certs
Debian'daki kanonik güven deposu konumudur ve IMO, Debian'ın 1999'dan beri aşağı yukarı aynı dizini içerdiğinden, temelde Debian'ınki gibi yerleştirmelidir. RHEL'in bir /etc/ssl/certs
dizini vardır, ancak bu biçimde değil - hiç bir sertifika dosyası içermez. CA yolu olarak kullanamazsınız. Dürüst olmak gerekirse, RHEL (ve Fedora ve türevleri) üzerinde bu dizin temelde bir tuzaktır. Kullanma. (Bkz. Https://bugzilla.redhat.com/show_bug.cgi?id=572725 ve https://bugzilla.redhat.com/show_bug.cgi?id=1053882neden ilk başta var olduğu ve nasıl düzeltmeye çalıştığım hakkında bir arka plan için). Bence neler olup bittiğinde haklısın, ama nedeninde yanlışsın. OpenLDAP yanlış bir şey yapmaz ve başarısız olmaz çünkü "ca-bundle.trust.crt ... bir Mozilla NSS sertifika / anahtar veritabanıdır" (bunlara denir cert8/9.db
ve RHEL'deki key3/4.db
sistem çapında olanlar yaşar /etc/pki/nssdb
) sadece başarısız oluyor çünkü /etc/ssl/certs
'sertifika dizini' olarak kullanılamıyor.
RHEL, başka bir yerde CApath tarzı bir güven deposu olarak kullanılabilecek hiçbir şey sağlamaz. RHEL'in sistem güven deposu, /etc/pki/tls/certs/ca-bundle.crt
ve adresinde bulunan tek bir PEM paket dosyası (OpenSSL açısından bir 'CAfile') olarak sağlanır /etc/pki/tls/cert.pem
. Ayrıca bulunabilir /etc/ssl/certs/ca-bundle.crt
olarak /etc/ssl/certs
aslında sadece sembolik bağdır /etc/pki/tls/certs
, ama bu konumu kanonik değildir ve gerçekten hiç bir şey tarafından kullanılmamalıdır. RHEL ayrıca OpenSSL'nin 'güvenilir sertifika' biçiminde bir paket de sağlar /etc/pki/tls/certs/ca-bundle.trust.crt
.
Anladığınız gibi yapılacak doğru şey, sistemin sağladığı paket dosyasını kullanmaktır. Cevabınız çalışacaktır ancak nedenleri yukarıda belirtilen için, şiddetle tavsiye ediyorum TLS_CACERT=/etc/pki/tls/certs/ca-bundle.crt
veya TLS_CACERT=/etc/pki/tls/cert.pem
üzerinde TLS_CACERT=/etc/ssl/certs/ca-bundle.crt
.
(Bunların hiçbirinde uzaktan yeni bir şey yok, btw, ancak interweb'lerdeki karışıklık yaygın. RH ve türevleri hiçbir zaman sertifika dolu bir dizin sağlamadı. 2000 yılından beri bir paket dosyası sağladılar. 2005 yılında / usr / share / ssl dizininden / etc / pki / tls dizinine taşındı. Debian hem /etc/ssl/certs
CApath tarzı bir dizin hem /etc/ssl/certs/ca-certificates.crt
de taş çağından beri az ya da çok bir paket dosyası olarak bulundu.)