NetWorker: LDAPS-integrering misslyckas med felmeddelandet "An SSL handshake error occurred while attempting to connect to LDAPS server: Unable to find valid certification path to requested target"
Summary: Du försöker köra authc_config kommando/skript för att lägga till extern AD/LDAPS-autentisering med NetWorker. LDAPS CA-certifikatet importerats till JAVA-cacerts-nyckellagret, men felmeddelandet "An SSL handshake error occurred while attempting to connect to LDAPS server: unable to find valid certification path to requested target" visas. ...
Symptoms
"An SSL handshake error occurred while attempting to connect to LDAPS server: unable to find valid certification path to requested target"
- Du försöker köra authc_config kommando/skript för att lägga till extern AD/LDAPS-autentisering med NetWorker
- Du kan integrera AD/LDAP (icke-SSL) med NetWorker; Problemet uppstår endast vid integrering av SSL (LDAPS)
- LDAPS CA-certifikatet importerats till JAVA-cacerts-nyckellagret.
- Du använder en "certifikatkedja" i miljön.
Cause
Det här problemet uppstår eftersom endast kedjecertifikatet importerats till Java Trust-nyckellagret. För en certifikatkedja ska alla certifikat i kedjan importeras korrekt till Java-nyckellagret i rätt kedjeordning (nedre kedja till rotcertifikat). Eventuella problem vid import av certifikatet skulle leda till att certifikatverifieringen misslyckades.
Det här identifieras när du kör opensl-kommandot från NetWorker-servern till LDAPS-servern:
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
Följ nedanstående procedur för att lösa certifikatfelet:
1. Ta bort alla tidigare importerade certifikat från betrodda Java-cacerts-nyckellager.
Processerna i denna KB använder Kommandot Java keytool . Det kan vara nödvändigt att ändra katalog (cd) till Java bin-katalogen. Beroende på Java-installation och operativsystem kan detta variera. Keytool-kommandot finns i bin-katalogen för Java-installationer. De flesta NetWorker-implementeringar använder NetWorker Runtime Environment (NRE) för Java.
- Linux: /opt/nre/java/latest/bin
- Windows: C:\Program\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 och ROOTCA-SERVER är bara exempel. Du måste ersätta dessa värden med alias som motsvarar LDAPS-servern och rot-CA-servern (vanligtvis används värdnamnet).
- Även om certifikaten inte visas när du använder findstr/grep. Granskautdata utan att begränsa resultaten för att bekräfta att det inte finns några alias för din LDAPS-server OCH/ELLER din rot-CA-server. findstr användes för korthet i exemplet ovan.
- Standardlagringsplatsen för Java cacerts-förtroendetangentlagret är "changeit".
- Ersätt JAVA_INSTALL_PATH med den fullständiga sökvägen till Java-installationen.
- Om du vill ta bort certifikaten från authc.truststore och/eller authc.keystore anger du den fullständiga sökvägen till filerna för -keystore och NetWorker authc-lösenordet för -storepass. Lösenordet för NetWorker authc-nyckellagret konfigureras vid installation av 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:
Om ett certifikat visas måste du ta bort det (annars går du till nästa steg):
keytool -delete -alias ALIAS_NAME -keystore "PATH_TO_CACERTS_FILE" -storepass PASSWORD
Exempel:
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. Anslut till LDAPS-servern med hjälp av opensl:
openssl s_client -showcerts -connect LDAPS_SERVER:636
Exempel:
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. Kopiera kedjecertifikatet, inklusive -----BEGIN CERTIFICATE------rubriken och -----END CERTIFICATE-----foten till en textfil, t.ex. chain.cer
3, b. Kopiera rotcertifikatet, inklusive -----BEGIN CERTIFICATE----- header och -----END CERTIFICATE-----foten till en textfil, t.ex. root.cer
4. Importera kedjecertifikatet till certifikatlagret för Java cacerts-förtroende och importera sedan alla certifikat som leder fram till rotcertifikatet:
Exempel:
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
- Ersätt aliasvärdena med alias som motsvarar din miljö, till exempel värdnamnet för LDAPS- och CA-servern.
- Ersätt PATH_TO med den fullständiga sökvägen till platsen för filerna som du skapade för chain.cer och root.cer.
- Kontrollera att inga ytterligare fel visas under importen.
5. Starta om NetWorker-tjänsterna. Authc-tjänsten läser av cacerts-nyckellagret vid start:
Linux: nsr_shutdown
systemctl starta networker
Windows: net stop nsrd /y &&net start nsrd
6. Slutför LDAPS-integreringen:
NetWorker: Så här konfigurerar du "AD over SSL" (LDAPS) från NetWorker-webbanvändargränssnittet (NWUI)
Networker: Så här konfigurerar du LDAPS-autentisering.