RHEL ne fournit en fait rien qui puisse être utilisé comme «répertoire de certificats» à des fins d'approbation par l'autorité de certification. Pour OpenSSL, un répertoire de certificats - un `` CApath '' - est un répertoire contenant des fichiers de certificats individuels (au format PEM ou au format étendu de `` certificat de confiance '' d'OpenSSL), avec des noms dans un format spécifique basé sur un hachage du nom de sujet du certificat. Habituellement, cela est réalisé en plaçant des fichiers avec des noms et des .pem
extensions lisibles par l'homme dans un répertoire et en les exécutant c_rehash
(voirman c_rehash
). Pour GnuTLS depuis la 3.3.6 (avant cela, GnuTLS n'avait pas de support de répertoire), c'est juste un répertoire contenant des fichiers PEM; GnuTLS essaiera de charger chaque fichier dans le répertoire et réussira sur tout ce qui est PEM (il ne peut pas gérer le format de «certificat de confiance» d'OpenSSL). Je ne suis pas honnêtement sûr si NSS peut réellement utiliser un répertoire plein de fichiers de certificats individuels comme racine de confiance, mais la documentation d'OpenLDAP semble suggérer que cela peut (mais si le répertoire contient également une base de données NSS, il donnera cette priorité). Quoi qu'il en soit, RHEL n'a rien de tel qu'un répertoire rempli de fichiers de certificats d'autorité de certification individuels.
Debian et ses dérivés fournissent /etc/ssl/certs
dans ce format; /etc/ssl/certs
est l'emplacement canonique du magasin de confiance sur Debian, et IMO tout ce qui le fournit devrait essentiellement le présenter comme Debian, car Debian avait ce répertoire disposé plus ou moins de la même manière depuis 1999. RHEL a un /etc/ssl/certs
répertoire, mais il est dans pas dans ce format - il ne contient aucun fichier de certificat individuel. Vous ne pouvez pas l'utiliser comme CApath. Honnêtement, sur RHEL (et Fedora et dérivés), ce répertoire est fondamentalement un piège. Ne l'utilisez pas. (Voir https://bugzilla.redhat.com/show_bug.cgi?id=572725 et https://bugzilla.redhat.com/show_bug.cgi?id=1053882pour quelques informations sur pourquoi il existe en premier lieu et comment j'essaye de le réparer). Je pense donc que vous avez raison sur ce qui se passe, mais que vous avez tort sur la raison. OpenLDAP ne fait rien de mal, et il n'échoue pas car "ca-bundle.trust.crt ... est une base de données de clés / certificats Mozilla NSS" (celles-ci sont appelées cert8/9.db
et key3/4.db
, et celles du système sur RHEL en direct /etc/pki/nssdb
) , il échoue simplement car il /etc/ssl/certs
n'est pas du tout utilisable comme «répertoire de certificats».
RHEL ne fournit rien non plus utilisable comme magasin de confiance de style CApath ailleurs. Le magasin de confiance système de RHEL est fourni sous la forme d'un fichier de bundle PEM unique (un «fichier CA» en termes OpenSSL), qui peut être trouvé sur /etc/pki/tls/certs/ca-bundle.crt
et /etc/pki/tls/cert.pem
. Il peut également être trouvé sur /etc/ssl/certs/ca-bundle.crt
as /etc/ssl/certs
is en fait juste un lien symbolique vers /etc/pki/tls/certs
, mais cet emplacement n'est pas canonique et ne devrait vraiment être utilisé par rien. RHEL fournit également un bundle au format «certificat de confiance» d'OpenSSL /etc/pki/tls/certs/ca-bundle.trust.crt
.
La bonne chose à faire, comme vous l'avez compris, est d'utiliser le fichier de bundle fourni par le système. Votre réponse fonctionnera, mais pour les raisons mentionnées ci-dessus, je recommanderais fortement TLS_CACERT=/etc/pki/tls/certs/ca-bundle.crt
ou TLS_CACERT=/etc/pki/tls/cert.pem
plus TLS_CACERT=/etc/ssl/certs/ca-bundle.crt
.
(Il n'y a rien de nouveau à distance dans tout cela, btw, mais la confusion sur les interwebs est répandue. RH et dérivés n'ont jamais fourni un répertoire complet de certificats, jamais. Ils ont fourni un fichier de paquet depuis l'an 2000. Il était déplacé de / usr / share / ssl vers / etc / pki / tls en 2005. Debian a eu à la fois /etc/ssl/certs
un répertoire de style CApath et /etc/ssl/certs/ca-certificates.crt
un fichier de bundle plus ou moins depuis l'âge de pierre.)