RHEL bietet in der Tat nichts an, was als "Zertifikatverzeichnis" für CA-Vertrauenszwecke verwendet werden könnte. Bei OpenSSL ist ein Zertifikatverzeichnis - ein "CApath" - ein Verzeichnis, das einzelne Zertifikatdateien (im PEM-Format oder im erweiterten "Trusted Certificate" -Format von OpenSSL) mit Namen in einem bestimmten Format enthält, das auf einem Hash des Antragstellernamens des Zertifikats basiert. In der Regel wird dies erreicht, indem Dateien mit lesbaren Namen und .pem
Erweiterungen in ein Verzeichnis gestellt und darauf ausgeführt werden c_rehash
(sieheman c_rehash
). Bei GnuTLS seit 3.3.6 (GnuTLS hatte zuvor keine Verzeichnisunterstützung) handelt es sich lediglich um ein Verzeichnis mit PEM-Dateien. GnuTLS wird versuchen, jede Datei im Verzeichnis zu laden und auf PEMs erfolgreich zu sein (es kann nicht mit OpenSSLs 'Trusted Certificate'-Format umgehen). Ich bin mir ehrlich gesagt nicht sicher, ob NSS tatsächlich ein Verzeichnis mit einzelnen Zertifikatdateien als Vertrauensstamm verwenden kann, aber die OpenLDAP-Dokumentation scheint dies zu empfehlen (aber wenn das Verzeichnis auch eine NSS-Datenbank enthält, wird diese Priorität zugewiesen). Unabhängig davon verfügt RHEL nicht über ein Verzeichnis mit einzelnen CA-Zertifikatdateien.
Debian und Derivate liefern /etc/ssl/certs
in diesem Format; /etc/ssl/certs
ist der kanonische Vertrauensspeicherort auf Debian, und alles, was IMO anbietet, sollte im Grunde genommen so aussehen wie Debian, da Debian dieses Verzeichnis seit 1999 mehr oder weniger auf die gleiche Weise angelegt hat. RHEL hat ein /etc/ssl/certs
Verzeichnis, aber es befindet sich in nicht in diesem Format - es enthält überhaupt keine einzelnen Zertifikatdateien. Sie können es nicht als CApath verwenden. Ehrlich gesagt ist dieses Verzeichnis bei RHEL (und Fedora und Derivaten) im Grunde genommen eine Falle. Benutze es nicht. (Siehe https://bugzilla.redhat.com/show_bug.cgi?id=572725 und https://bugzilla.redhat.com/show_bug.cgi?id=1053882für einige Hintergrundinformationen darüber, warum es überhaupt existiert und wie ich versuche, es zu reparieren). Ich denke, Sie haben Recht mit dem, was vor sich geht, aber Sie haben Unrecht mit dem Grund, warum. OpenLDAP macht nichts falsch und es schlägt auch nicht fehl, weil "ca-bundle.trust.crt ... eine Mozilla NSS-Zertifikats- / Schlüsseldatenbank" ist (diese heißen cert8/9.db
und key3/4.db
und die systemweiten auf RHEL leben in /etc/pki/nssdb
). , es scheitert nur daran, dass /etc/ssl/certs
es überhaupt nicht als 'Zertifikatsverzeichnis' verwendet werden kann.
RHEL bietet auch sonst nirgendwo etwas, das als CApath-artiger Truststore verwendet werden kann. Der System Trust Store von RHEL wird als einzelne PEM-Bundle-Datei (eine 'CA-Datei' in OpenSSL-Begriffen) bereitgestellt, die unter /etc/pki/tls/certs/ca-bundle.crt
und abgerufen werden kann /etc/pki/tls/cert.pem
. Es kann auch unter gefunden werden, /etc/ssl/certs/ca-bundle.crt
da /etc/ssl/certs
es eigentlich nur ein Symlink zu ist /etc/pki/tls/certs
, aber dieser Ort ist nicht kanonisch und sollte wirklich nie von irgendetwas benutzt werden. RHEL bietet auch ein Paket im OpenSSL-Format 'Trusted Certificate' als an /etc/pki/tls/certs/ca-bundle.trust.crt
.
Wie Sie herausgefunden haben, müssen Sie die Bundle-Datei verwenden, die das System zur Verfügung stellt. Ihre Antwort wird funktionieren, aber aus den oben genannten Gründen würde ich dringend empfehlen TLS_CACERT=/etc/pki/tls/certs/ca-bundle.crt
oder TLS_CACERT=/etc/pki/tls/cert.pem
über TLS_CACERT=/etc/ssl/certs/ca-bundle.crt
.
(Übrigens gibt es in alledem nichts Neues, aber Verwirrung in den Interwebs ist weit verbreitet. RH und Derivate haben noch nie ein Verzeichnis voller Zertifikate bereitgestellt. Sie haben seit dem Jahr 2000 eine Bundle-Datei bereitgestellt. Dies war es bewegt von / usr / share / ssl / etc / pki / tls 2005 Debian beide hatte /etc/ssl/certs
als capath-style - Verzeichnis und /etc/ssl/certs/ca-certificates.crt
als Bundle - Datei mehr oder weniger seit der Steinzeit.)