NetWorker: Integracja LDAPS kończy się niepowodzeniem z błędem uzgodnienia SSL podczas próby nawiązania połączenia z serwerem LDAPS: Unable to find valid certification path to requested target"
Summary: Próbujesz uruchomić polecenie/skrypt authc_config w celu dodania zewnętrznego uwierzytelniania AD/LDAPS za pomocą NetWorker. Certyfikat urzędu certyfikacji LDAPS został zaimportowany do magazynu kluczy certyfikatów JAVA, ale wyświetlany jest komunikat o błędzie "Wystąpił błąd handshake SSL podczas próby połączenia z serwerem LDAPS: nie można znaleźć prawidłowej ścieżki certyfikacji do żądanego celu" ...
Symptoms
"Wystąpił błąd uzgadniania SSL podczas próby nawiązania połączenia z serwerem LDAPS: nie można znaleźć prawidłowej ścieżki certyfikacji do żądanego celu"
- Próbujesz uruchomić polecenie/skrypt authc_config w celu dodania zewnętrznego uwierzytelniania AD/LDAPS za pomocą NetWorker
- Można pomyślnie zintegrować AD/LDAP (bez SSL) z NetWorker; Problem pojawia się tylko podczas integrowania SSL (LDAPS)
- Certyfikat urzędu certyfikacji LDAPS został zaimportowany do magazynu kluczy certyfikatów JAVA.
- W swoim środowisku używasz "łańcucha certyfikatów".
Cause
Ten problem występuje, ponieważ tylko certyfikat łańcucha został zaimportowany do magazynu kluczy zaufania Java. W przypadku łańcucha certyfikatów wszystkie certyfikaty w łańcuchu powinny być prawidłowo zaimportowane do magazynu kluczy Java w odpowiedniej kolejności łańcucha (dolny łańcuch do certyfikatu głównego). Każdy problem podczas importowania certyfikatu skutkuje niepowodzeniem weryfikacji certyfikatu.
Jest to rozpoznane po uruchomieniu polecenia opensl z serwera NetWorker na serwerze LDAPS:
OPENSSL_INSTALL_PATH\bin> openssl s_client -showcerts -connect ldaps-server.lab.emc.local:636 CONNECTED(00000124) depth=1 DC = LOCAL, DC = EMC, DC = LAB, CN = LDAPS-SERVER --- Certificate chain 0 s:/CN=LDAPS-SERVER.LAB.EMC.LOCAL i:/DC=LOCAL/DC=EMC/DC=LAB/CN=ROOTCA-SERVER -----BEGIN CERTIFICATE----- << removed for brevity >> -----END CERTIFICATE----- 1 s:/DC=LOCAL/DC=EMC/DC=LAB/CN=ROOTCA-SERVER i:/CN=ROOTCA-SERVER -----BEGIN CERTIFICATE----- << removed for brevity >> -----END CERTIFICATE-----
Resolution
Aby rozwiązać problem z certyfikatem, wykonaj poniższą procedurę:
1. Usuń wszystkie uprzednio zaimportowane certyfikaty z magazynu kluczy zaufania Java Cacerts.
Procesy w tej wiedzy wykorzystują polecenie narzędzia Java Keytool . Może być konieczna zmiana katalogu (cd) na katalog Java bin. W zależności od instalacji języka Java i systemu operacyjnego może się to różnić. Polecenie keytool można znaleźć w katalogu instalacyjnym Java. Większość implementacji NetWorker używa środowiska NetWorker Runtime Environment (NRE) dla języka Java.
- Linux: /opt/nre/java/latest/bin
- Windows: C:\Program Files\NRE\java\jre#.#.#_##\bin
JAVA_INSTALL_PATH\bin> keytool -list -keystore "JAVA_INSTALL_PATH\lib\security\cacerts" -storepass changeit | findstr LDAPS-SERVER
ldaps-server, DATE-IMPORTED, trustedCertEntry,
JAVA_INSTALL_PATH\bin> keytool -list -keystore "JAVA_INSTALL_PATH\lib\security\cacerts" -storepass changeit | findstr ROOTCA-SERVER
rootca-server, DATE-IMPORTED, trustedCertEntry,
- LDAPS-SERVER i ROOTCA-SERVER to tylko przykłady. Wartości te należy zastąpić aliasami, które odpowiadają serwerowi LDAPS i serwerowi głównego urzędu certyfikacji (zazwyczaj używana jest nazwa hosta).
- Nawet jeśli certyfikaty nie są wyświetlane podczas korzystania z polecenia findstr/grep. Review the output without narrowing the results to confirm there are no aliases for your LDAPS server AND/OR your root CA server. findstr was used for brevity in the above example.
- Domyślnym magazynem magazynu kluczy zaufania Java cacerts jest "changeit".
- Wymień JAVA_INSTALL_PATH pełną ścieżkę do instalacji języka Java.
- Aby usunąć certyfikaty z magazynu authc.truststore i/lub authc.keystore, należy określić pełną ścieżkę do tych plików dla -keystore i hasła NetWorker authc dla -storepass. Hasło magazynu kluczy NetWorker authc jest skonfigurowane podczas instalacji programu NetWorker.
- Linux:
- /opt/nsr/authc-server/conf/authc.truststore
- /nsr/authc/conf/authc.keystore
- Windows:
- C:\Program Files\EMC NetWorker\nsr\authc-server\conf\authc.truststore
- C:\Program Files\EMC NetWorker\nsr\authc-server\tomcat\conf\authc.keystore
- Linux:
Jeśli zostanie wyświetlony certyfikat, należy go usunąć (w przeciwnym razie przejdź do następnego kroku):
keytool -delete -alias ALIAS_NAME -keystore "PATH_TO_CACERTS_FILE" -storepass PASSWORD
Przykład:
JAVA_INSTALL_PATH\bin> keytool -delete -alias LDAPS-SERVER -keystore ..\lib\security\cacerts -storepass changeit
JAVA_INSTALL_PATH\bin> keytool -delete -alias ROOTCA-SERVER -keystore ..\lib\security\cacerts" -storepass changeit
2. Połącz się z serwerem LDAPS przy użyciu opensl:
openssl s_client -showcerts -connect LDAPS_SERVER:636
Przykład:
OPENSSL_INSTALL_PATH\bin> openssl s_client -showcerts -connect ldaps-server.lab.emc.local:636
CONNECTED(00000124)
depth=1 DC = LOCAL, DC = EMC, DC = LAB, CN = LDAPS-SERVER
---
Certificate chain
0 s:/CN=LDAPS-SERVER.LAB.EMC.LOCAL
i:/DC=LOCAL/DC=EMC/DC=LAB/CN=ROOTCA-SERVER
-----BEGIN CERTIFICATE-----
<< removed for brevity >>
-----END CERTIFICATE-----
1 s:/DC=LOCAL/DC=EMC/DC=LAB/CN=ROOTCA-SERVER
i:/CN=ROOTCA-SERVER
-----BEGIN CERTIFICATE-----
<< removed for brevity >>
-----END CERTIFICATE-----
3, a. Skopiuj certyfikat łańcucha, w tym certyfikat -----BEGIN----- nagłówek i certyfikat -----END----- stopkę do pliku tekstowego, np. chain.cer
3, b. Skopiuj certyfikat główny, w tym certyfikat -----BEGIN----- nagłówek i certyfikat -----END----- stopkę do pliku tekstowego, np. root.cer
4. Zaimportuj certyfikat łańcucha do magazynu kluczy zaufania Java Cacerts, a następnie zaimportuj wszystkie certyfikaty prowadzące do certyfikatu głównego:
Przykład:
JAVA_INSTALL_PATH\bin> keytool -import -alias LDAPS-SERVER -keystore "JAVA_INSTALL_PATH\lib\security\cacerts" -storepass changeit -file "PATH_TO\chain.cer"
<< removed for brevity >>
Trust this certificate? [no]: y
Certificate was added to keystore
JAVA_INSTALL_PATH\bin> keytool -import -alias ROOTCA-SERVER -keystore "JAVA_INSTALL_PATH\lib\security\cacerts" -storepass changeit -file "PATH_TO\root.cer"
<< removed for brevity >>
Trust this certificate? [no]: y
Certificate was added to keystore
- Zamień wartości aliasów na aliasy, które odpowiadają środowisku, na przykład nazwę hosta serwera LDAPS i urzędu certyfikacji.
- Zastąp PATH_TO pełną ścieżką do lokalizacji plików utworzonych dla chain.cer i root.cer.
- Upewnij się, że podczas importowania nie zostaną wyświetlone żadne dodatkowe błędy.
5. Uruchom ponownie usługi NetWorker. Podczas uruchamiania usługa authc odczytuje magazyn kluczy cacerts:
Linux: nsr_shutdown
systemctl start networker
Windows: net stop nsrd /y && net start nsrd
6. Zakończenie integracji LDAPS:
NetWorker: Jak skonfigurować usługę "AD over SSL" (LDAPS) z poziomu sieciowego interfejsu użytkownika NetWorker (NWUI)
Networker: Jak skonfigurować uwierzytelnianie LDAPS.