実際、RHELはCAの信頼を目的とした「証明書ディレクトリ」として使用できるものを提供していません。OpenSSLの場合、証明書ディレクトリ(「CApath」)は、証明書のサブジェクト名のハッシュに基づく特定の形式の名前を持つ、個別の証明書ファイル(PEM形式またはOpenSSLの拡張「信頼できる証明書」形式)を含むディレクトリです。通常、これは、人間が読める名前と.pem
拡張子を持つファイルをディレクトリに入れて実行c_rehash
することで実現されます(参照man c_rehash
)。3.3.6以降のGnuTLSの場合(それ以前はGnuTLSにはディレクトリがサポートされていませんでした)、それはPEMファイルが含まれる単なるディレクトリです。GnuTLSは、ディレクトリ内のすべてのファイルを試行してロードし、PEMに似たものすべてで成功します(OpenSSLの「信頼できる証明書」形式を処理できません)。NSSが個々の証明書ファイルで満たされたディレクトリを信頼ルートとして実際に使用できるかどうかは正直わかりませんが、OpenLDAPのドキュメントではそれができることが示唆されているようです(ただし、ディレクトリにNSSデータベースも含まれている場合は優先されます)。とにかく、RHELには、個々のCA証明書ファイルでいっぱいのディレクトリのようなものはありません。
Debianおよび派生物/etc/ssl/certs
はこの形式で提供されます。/etc/ssl/certs
Debianの標準的なトラストストアの場所であり、それを提供するIMOは基本的にDebianのようにレイアウトする必要があります。Debianの/etc/ssl/certs
ディレクトリは1999年以降ほぼ同じようにレイアウトされていたためです。RHELにはディレクトリがありますが、この形式ではありません-個々の証明書ファイルはまったく含まれていません。CApathとして使用することはできません。正直なところ、RHEL(およびFedora、および派生物)では、そのディレクトリは基本的にトラップです。使用しないでください。(https://bugzilla.redhat.com/show_bug.cgi?id=572725およびhttps://bugzilla.redhat.com/show_bug.cgi?id=1053882を参照してくださいそもそもなぜそれが存在するのか、そしてどのように修正しようとしているのかについての背景について)。だから私はあなたが何が起こっているかについては正しいが、その理由については間違っていると思う。OpenLDAPのは何も間違っているのではなく、それがために失敗していない「CA-bundle.trust.crt ... MozillaのNSSの証明書/鍵データベースは」(それらが呼び出されるcert8/9.db
とkey3/4.db
、およびRHEL上のシステム全体のものが住んでいます/etc/pki/nssdb
) 、/etc/ssl/certs
「証明書ディレクトリ」としてまったく使用できないため、失敗しているだけです。
RHELは、CApathスタイルのトラストストアとして使用できるものを他のどこにも提供しません。RHELのシステムトラストストアは、/etc/pki/tls/certs/ca-bundle.crt
およびにある単一のPEMバンドルファイル(OpenSSL用語では「CAfile」)として提供されます/etc/pki/tls/cert.pem
。また、で見つけることができる/etc/ssl/certs/ca-bundle.crt
よう/etc/ssl/certs
、実際に単なるシンボリックリンクである/etc/pki/tls/certs
が、その場所は、標準的なものではなく、実際には、これまで何によって使用すべきではありません。RHELは、OpenSSLの「信頼できる証明書」形式のバンドルも提供してい/etc/pki/tls/certs/ca-bundle.trust.crt
ます。
あなたが理解したように、正しいことは、システムが提供するバンドルファイルを使用することです。あなたの答えは動作しますが、上記の理由のために、私は強くお勧めしますTLS_CACERT=/etc/pki/tls/certs/ca-bundle.crt
かTLS_CACERT=/etc/pki/tls/cert.pem
オーバーTLS_CACERT=/etc/ssl/certs/ca-bundle.crt
。
(これについては、リモートで新しいものはありませんが、インターウェブ上の混乱は広まっています。RHと派生物は、これまでにディレクトリの完全な証明書を提供していません。2000年以来、バンドルファイルを提供しています。 2005年に/ usr / share / sslから/ etc / pki / tlsに移動しまし/etc/ssl/certs
た。Debianは、CApathスタイルのディレクトリ/etc/ssl/certs/ca-certificates.crt
としても、バンドルファイルとしても、石器時代から多かれ少なかれ持っていました。)