RHEL w rzeczywistości nie udostępnia niczego, co można by wykorzystać jako „katalog certyfikatów” dla celów zaufania urzędu certyfikacji. W przypadku OpenSSL katalog certyfikatów - „CApath” - to katalog zawierający pojedyncze pliki certyfikatów (w formacie PEM lub rozszerzonym formacie „zaufanego certyfikatu” OpenSSL), z nazwami w określonym formacie opartym na haszu nazwy podmiotu certyfikatu. Zwykle osiąga się to poprzez umieszczenie plików z nazwami i .pem
rozszerzeniami czytelnymi dla człowieka w katalogu i uruchomienie c_rehash
w nim (patrzman c_rehash
). W przypadku GnuTLS od wersji 3.3.6 (wcześniej GnuTLS nie obsługiwał katalogów), jest to tylko katalog z plikami PEM; GnuTLS spróbuje załadować każdy plik w katalogu i odniesie sukces na dowolnym PEM-ie (nie obsługuje formatu „zaufanego certyfikatu” OpenSSL). Nie jestem do końca pewien, czy NSS może w jakiś sposób wykorzystać katalog pełen pojedynczych plików certyfikatów jako katalog główny zaufania, ale dokumentacja OpenLDAP wydaje się sugerować, że może (ale jeśli katalog zawiera również bazę danych NSS, da ten priorytet). Niezależnie od tego, RHEL nie ma czegoś takiego jak katalog pełen pojedynczych plików certyfikatów CA.
Debian i pochodne udostępniają /etc/ssl/certs
w tym formacie; /etc/ssl/certs
jest kanoniczną lokalizacją magazynu zaufania w Debianie, a IMO wszystko, co ją zapewnia, powinno zasadniczo ją ułożyć tak, jak Debian, ponieważ Debian ma ten katalog ułożony mniej więcej tak samo jak od 1999 roku. RHEL ma /etc/ssl/certs
katalog, ale jest w nie w tym formacie - nie zawiera żadnych pojedynczych plików certyfikatów. Nie można go używać jako ścieżki CA. Szczerze mówiąc, na RHEL (i Fedorze i pochodnych) ten katalog jest w zasadzie pułapką. Nie używaj tego. (Zobacz https://bugzilla.redhat.com/show_bug.cgi?id=572725 i https://bugzilla.redhat.com/show_bug.cgi?id=1053882dla niektórych podstaw, dlaczego w ogóle istnieje i jak próbuję to naprawić). Myślę więc, że masz rację co do tego, co się dzieje, ale mylisz się co do przyczyny. OpenLDAP nie robi nic złego i nie zawodzi, ponieważ „ca-bundle.trust.crt ... to baza danych certyfikatów / kluczy Mozilla NSS” (te są nazywane cert8/9.db
i key3/4.db
, i systemowe w RHEL na żywo /etc/pki/nssdb
) , po prostu zawodzi, ponieważ w /etc/ssl/certs
ogóle nie nadaje się do „katalogu certyfikatów”.
RHEL nie zapewnia niczego, co mogłoby być użyteczne jako magazyn zaufania w stylu CApath nigdzie indziej. Systemowy magazyn zaufania RHEL jest dostarczany jako pojedynczy plik pakietu PEM („plik CA” w kategoriach OpenSSL), który można znaleźć na stronie /etc/pki/tls/certs/ca-bundle.crt
i /etc/pki/tls/cert.pem
. Można go również znaleźć, /etc/ssl/certs/ca-bundle.crt
ponieważ /etc/ssl/certs
jest to właściwie tylko dowiązanie symboliczne /etc/pki/tls/certs
, ale ta lokalizacja nie jest kanoniczna i tak naprawdę nie powinna być używana przez nic. RHEL zapewnia również pakiet w formacie „zaufanego certyfikatu” OpenSSL jako /etc/pki/tls/certs/ca-bundle.trust.crt
.
Jak się zorientowałeś, właściwym rozwiązaniem jest użycie pliku pakietu dostarczonego przez system. Twoja odpowiedź zadziała, ale z wyżej wymienionych powodów zdecydowanie polecam TLS_CACERT=/etc/pki/tls/certs/ca-bundle.crt
lub TLS_CACERT=/etc/pki/tls/cert.pem
przeskoczę TLS_CACERT=/etc/ssl/certs/ca-bundle.crt
.
(Nie ma w tym nic nowego, btw, ale zamieszanie w sieciach jest powszechne. RH i pochodne nigdy nie dostarczyły katalogu pełnego certyfikatów. Dostarczyły plik pakietu od 2000 roku. To był przeniesiony z / usr / share / ssl do / etc / pki / tls w 2005 roku. Debian ma zarówno /etc/ssl/certs
katalog w stylu CApath, /etc/ssl/certs/ca-certificates.crt
jak i plik pakietu mniej więcej od epoki kamienia łupanego.)
/etc/ssl/certs/
zawiera/etc/ssl/certs/ca-bundle.trust.crt
jako częśćca-certificates-2010.63-3.el6_1.5.noarch
bazy danych certyfikatów / kluczy Mozilla NSS. Włączenie tego plikuTLS_CACERTDIR
powoduje, że wszystkie inne pliki są ignorowane.Jednak
openldap-2.4.23-26.el6_3.2.i686
wydaje się , że nie radzi sobie z tym poprawnie.Zastosowanie krótkiej odpowiedzi
LDAPTLS_CACERT=/etc/ssl/certs/ca-bundle.crt
(plik konfiguracyjny
TLS_CACERT=/etc/ssl/certs/ca-bundle.crt
)Ten plik jest również dołączony przez
ca-certificates-2010.63-3.el6_1.5.noarch
.źródło
Ktoś inny na to wpadnie; oto, co działało dla mnie na centos 6 openldap i sssd:
uwagi: Niektórzy „inteligentni faceci” postanowili, że sssd wymaga TLS / SSL; zmiana zachowania z centos5; jest to świetne dla systemów zewnętrznych; ale gdy masz ponad 300 węzłów w urządzeniu wewnętrznym z nieosiągalną siecią wewnętrzną do klastra maszyn; jest to niezwykle bezużyteczna funkcja bezpieczeństwa.
b. Co więcej, wydaje się, że certyfikaty samopodpisane już nie działają; będzie kontynuować próbę
do. Unikaj NSLCD za wszelką cenę; był nękany ciągłymi problemami, gdy ustawiłem starszą flagę i użyłem zamiast sssd (netgroups; zakleszczenie syslog itp.).
Aby rozpocząć pracę przy użyciu sssd;
sssd.conf
slapd.conf
ldap.conf
źródło
sssd
na przykład.To bardzo częsty problem, nie martw się, mam dla ciebie odpowiedź.
Pierwsze RHEL Klony mają mieć dwa
ldap.conf
pliki,/etc/ldap.conf
lub w RHEL6 jest jest przestarzała, ale można użyć/etc/nslcd.conf
do uwierzytelniania teraz/etc/openldap/ldap.conf
jest tylko dla zapytań , takldapsearch
,ldapmodify
,ldapremove
, to naprawdę Twój profil, dzięki czemu nie trzeba mieć bolesnego długi ciąg każdym razem, gdy chcesz aby uruchomić polecenie ldap.Teraz, gdy masz to na uboczu, masz dwa parametry,
tls_cacertfile
- wyraźnie zdefiniuj certyfikat ca i powinieneś być gotowytls_cacertdir
- wrzuć ca ca do katalogu, ale to nie zadziała, ponieważ trzeba go zaszyfrowaćużyj
openssl x509 -hash -noout -in $file , ln -s $file $file.0
, wtedy Twój certyfikat CA będzie działał.Pamiętaj również, że jeśli plik konfiguracyjny znajduje się w CAPS, pracujesz w /etc/openldap/ldap.conf, są to bardzo różne pliki.
Mam nadzieję, że to wszystko wyjaśni.
źródło
Według każdej strony podręcznika, którą widziałem (ale nie jestem użytkownikiem CentOS), nie ma czegoś takiego jak
LDAPTLS_CACERTDIR
. Prawidłowa zmienna do ustawienia toTLS_CACERTDIR
. Powinieneś ustawić go na stałe w/etc/openldap/ldap.conf
każdym miejscu, w którym CentOS przechowuje plik konfiguracyjny biblioteki LDAP. Konieczne może być również skonfigurowanie samego pam-ldap w celu wyszukiwania certyfikatów urzędu certyfikacji./etc/pam_ldap.conf
Myślę, że w CentOS jest to zmienna, którą należy ustawićtls_cacertdir
.źródło
Environmental variables may also be used to augment the file based defaults. The name of the variable is the option name with an added prefix of LDAP. For example, to define BASE via the environment, set the variable LDAPBASE to the desired value.
LDAPTLS_CACERTDIR
i nie znalazłem żadnej, więc założyłem, że pomieszałeś swoje zmienne. Przepraszam.