NetWorker: LDAPS-integratie mislukt met "An SSL handshake error occurred while attempting to connect to LDAPS server: Unable to find valid certification path to requested target"
Summary: U probeert de authc_config opdracht/script uit te voeren voor het toevoegen van externe AD/LDAPS-authenticatie met NetWorker. Uw LDAPS CA-certificaat is geïmporteerd naar de JAVA cacerts keystore, maar ontvangt de foutmelding "An SSL handshake error occurred while attempting to connect to LDAPS server: unable to find valid certification path to requested target" ...
Symptoms
"An SSL handshake error occurred while attempting to connect to LDAPS server: unable to find valid certification path to requested target"
- U probeert de authc_config opdracht/script uit te voeren voor het toevoegen van externe AD/LDAPS-authenticatie met NetWorker
- U kunt AD/LDAP (niet-SSL) integreren met NetWorker; Het probleem wordt alleen weergegeven bij het integreren van SSL (LDAPS)
- Uw LDAPS CA-certificaat is geïmporteerd naar de JAVA cacerts keystore.
- U gebruikt een "certificaatketen" in uw omgeving.
Cause
Dit probleem doet zich voor omdat alleen het chain-certificaat is geïmporteerd naar de Java Trust Keystore. Voor een certificaatketen moeten alle certificaten in de keten correct worden geïmporteerd naar de Java-keystore in de juiste ketenvolgorde (lagere keten naar rootcert). Elk probleem bij het importeren van het certificaat zou leiden tot een fout bij certificaatverificatie.
Dit wordt geïdentificeerd wanneer u de opdracht openssl uitvoert vanaf uw NetWorker-server naar de LDAPS-server:
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
Volg de onderstaande procedure om de certificaatfout op te lossen:
1. Verwijder alle eerder geïmporteerde certificaten uit de Java Cacerts Trust Keystore.
De processen in dit KB-artikel maken gebruik van de Java Keytool-opdracht . Het kan nodig zijn om de map (cd) te wijzigen in de Java bin-map. Afhankelijk van de Java-installatie en het besturingssysteem, kan dit variëren. De opdracht keytool is te vinden in de map Java installations bin. De meeste NetWorker-implementaties gebruiken de NetWorker Runtime Environment (NRE) voor 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 en ROOTCA-SERVER zijn slechts voorbeelden. U moet deze waarden vervangen door aliassen die overeenkomen met uw LDAPS-server en root-CA-server (meestal wordt de hostnaam gebruikt).
- Zelfs als de certificaten niet worden weergegeven bij het gebruik van findstr/grep. Review de uitvoer zonder de resultaten te beperken om te bevestigen dat er geen aliassen zijn voor uw LDAPS-server EN/OF uw root-CA-server. findstr is in het bovenstaande voorbeeld gebruikt voor beknoptheid.
- De standaard storepass voor de Java cacerts trust keystore is "changeit".
- Vervang JAVA_INSTALL_PATH door het volledige pad naar uw Java-installatie.
- Voor het verwijderen van de certificaten uit de authc.truststore en/of authc.keystore, geeft u het volledige pad naar deze bestanden op voor -keystore en het NetWorker authc-wachtwoord voor -storepass. Het wachtwoord van de NetWorker authc keystore wordt geconfigureerd tijdens de installatie van 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:
Als een certificaat wordt weergegeven, moet u het verwijderen (ga anders naar de volgende stap):
keytool -delete -alias ALIAS_NAME -keystore "PATH_TO_CACERTS_FILE" -storepass PASSWORD
Voorbeeld:
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. Maak verbinding met de LDAPS-server met behulp van de openssl:
openssl s_client -showcerts -connect LDAPS_SERVER:636
Voorbeeld:
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. Kopieer het ketencertificaat, inclusief het -----BEGIN CERTIFICATE----- header en de -----END CERTIFICATE----- footer in een tekstbestand, bijvoorbeeld: chain.cer
3, b. Kopieer het basiscertificaat, inclusief de -----BEGIN CERTIFICATE----- header en de -----END CERTIFICATE----- footer in een tekstbestand, bijv. root.cer
4. Importeer het chain-certificaat in de Java cacerts trust keystore en importeer vervolgens alle certificaten voorafgaand aan het basiscertificaat:
Voorbeeld:
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
- Vervang de aliaswaarden door aliassen die overeenkomen met uw omgeving, bijvoorbeeld de hostnaam van de LDAPS- en CA-server.
- Vervang PATH_TO door het volledige pad naar de locatie van de bestanden die u hebt gemaakt voor de chain.cer en root.cer.
- Zorg ervoor dat er geen extra fouten worden uitgevoerd tijdens het importeren.
5. Start NetWorker-services opnieuw op. De authc-service leest de cacerts keystore bij het opstarten:
Linux: nsr_shutdown
systemctl start networker
Windows: net stop nsrd /y && net start nsrd
6. Voltooi de LDAPS-integratie:
NetWorker: 'AD over SSL' (LDAPS) configureren vanuit de NetWorker Web User Interface (NWUI)
Networker: LDAPS-authenticatie configureren.