NetWorker: LDAPS-integration mislykkes med "Der opstod en SSL-handshake-fejl under forsøg på at oprette forbindelse til LDAPS-serveren: Kunne ikke finde en gyldig certificeringssti til den anmodede destination"
Summary: Du forsøger at køre authc_config kommando/script for at tilføje ekstern AD/LDAPS-godkendelse med NetWorker. Dit LDAPS CA-certifikat blev importeret til JAVA-cacerts-nøglelageret, men modtager fejlmeddelelsen "Der opstod en SSL-handshake-fejl under forsøget på at oprette forbindelse til LDAPS-serveren: Kunne ikke finde en gyldig certificeringssti til den ønskede destination" ...
Symptoms
"Der opstod en SSL-handshake-fejl under forsøg på at oprette forbindelse til LDAPS-serveren: Kunne ikke finde en gyldig certificeringssti til den ønskede destination"
- Du forsøger at køre authc_config kommando/script for at tilføje ekstern AD/LDAPS-godkendelse med NetWorker
- Du kan integrere AD/LDAP (ikke-SSL) med NetWorker. Problemet opstår kun, når SSL (LDAPS) integreres
- Dit LDAPS CA-certifikat blev importeret til JAVA-nøglelageret for cacerts.
- Du bruger en "certifikatkæde" i dit miljø.
Cause
Dette problem opstår, fordi kun kædecertifikatet blev importeret til Javas nøglelager med tillid. For en certifikatkæde skal alle certifikater i kæden importeres korrekt til Java-nøglelageret i den rigtige kæderækkefølge (lavere kæde til rodcertifikat). Ethvert problem med import af certifikatet vil resultere i certifikatbekræftelsesfejl.
Dette identificeres, når du kører opensl-kommandoen fra din NetWorker-server til LDAPS-serveren:
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ølg nedenstående procedure for at løse certifikatfejlen:
1. Fjern alle tidligere importerede certifikater fra Javas nøglelager med tillid til cacerts.
Processerne i denne KB udnytter Java keytool-kommandoen . Det kan være nødvendigt at ændre mappen (cd) til Java-bin-mappen. Afhængigt af Java-installationen og operativsystemet kan dette variere. Keytool-kommandoen kan findes i Java-installationsbakkemappen. De fleste NetWorker-implementeringer bruger NetWorker Runtime Environment (NRE) til 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 og ROOTCA-SERVER er kun eksempler. Du skal erstatte disse værdier med aliasser, der svarer til din LDAPS-server og root CA-server (typisk bruges værtsnavnet).
- Selvom certifikaterne ikke vises, når du bruger findstr/grep. Se outputtet uden at indsnævre resultaterne for at bekræfte, at der ikke er nogen aliasser for din LDAPS-server OG/ELLER din root CA-server. Findstr blev brugt til korthed i ovenstående eksempel.
- Standardlageradgangskoden for Java Cacerts Trust KeyStore er "changeit".
- Udskift JAVA_INSTALL_PATH med den fulde sti til din Java-installation.
- For at fjerne certifikaterne fra authc.truststore og/eller authc.keystore skal du angive den fulde sti til disse filer for -keystore og NetWorker authc-adgangskoden for -storepass. NetWorker authc keystore-adgangskoden konfigureres under installation af 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:
Hvis et certifikat vises, skal du slette det (ellers skal du gå til næste trin):
keytool -delete -alias ALIAS_NAME -keystore "PATH_TO_CACERTS_FILE" -storepass PASSWORD
Eksempel:
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. Opret forbindelse til LDAPS-serveren ved hjælp af openssl:
openssl s_client -showcerts -connect LDAPS_SERVER:636
Eksempel:
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. Kopier kædecertifikatet, herunder -----BEGIN CERTIFICATE----- overskriften og -----END CERTIFICATE----- sidefoden i en tekstfil, f.eks.: kæde.cer
3, b. Kopier rodcertifikatet, herunder -----BEGIN CERTIFICATE----- og -----END CERTIFICATE----- sidefoden i en tekstfil, f.eks.: root.cer
4. Importer kædecertifikatet til Java-nøglecentrets tillidsnøglelager, og importer derefter alle certifikater, der fører op til rodcertifikatet:
Eksempel:
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
- Udskift aliasværdierne med aliasser, der svarer til dit miljø, f.eks. værtsnavnet for LDAPS- og CA-serveren.
- Erstat PATH_TO med den fulde sti til placeringen af de filer, du oprettede til chain.cer og root.cer.
- Sørg for, at der ikke vises yderligere fejl under importen.
5. Genstart NetWorker-tjenester. Authc-tjenesten læser cacerts keystore ved opstart:
Linux: nsr_shutdown
systemctl start networker
Windows: net stop nsrd /y &> net start nsrd
6. Fuldfør LDAPS-integrationen:
NetWorker: Sådan konfigureres "AD over SSL" (LDAPS) fra NetWorker Web User Interface (NWUI)
Networker: Sådan konfigureres LDAPS-godkendelse.