NetWorker: L'integrazione LDAPS ha esito negativo con errore "An SSL handshake error occurred while attempting to connect to LDAPS server: Unable to find valid certification path to requested target"
Summary: Si sta tentando di eseguire il comando/script authc_config per aggiungere l'autenticazione esterna AD/LDAPS con NetWorker. Il certificato CA LDAPS è stato importato nel keystore dell'autorità di certificazione JAVA, ma viene visualizzato il messaggio di errore "Si è verificato un errore di handshake SSL durante il tentativo di connessione al server LDAPS: unable to find valid certification path to requested target" ...
Symptoms
"Si è verificato un errore di handshake SSL durante il tentativo di connessione al server LDAPS: unable to find valid certification path to requested target"
- Si sta tentando di eseguire il comando/script authc_config per aggiungere l'autenticazione esterna AD/LDAPS con NetWorker
- È possibile integrare correttamente AD/LDAP (non SSL) con NetWorker; Il problema si verifica solo quando si integra SSL (LDAPS)
- Il certificato CA LDAPS è stato importato nel keystore cacerts JAVA.
- Si utilizza una "catena di certificati" nell'ambiente.
Cause
Questo problema si verifica perché solo il certificato della catena è stato importato nel keystore di attendibilità Java. Per una catena di certificati, tutti i certificati nella catena devono essere importati correttamente nel keystore Java nell'ordine corretto della catena (catena inferiore al certificato radice). Qualsiasi problema nell'importazione del certificato comporterà un errore di verifica del certificato.
Ciò viene identificato quando si esegue il comando openssl dal server NetWorker al server 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
Per risolvere l'errore del certificato, attenersi alla seguente procedura:
1. Rimuovere eventuali certificati importati in precedenza dal keystore dell'attendibilità Cacerts Java.
I processi in questo articolo della KB sfruttano il comando chiave Java keytool . Potrebbe essere necessario modificare la directory (cd) nella directory bin Java. A seconda dell'installazione e del sistema operativo Java, questo può variare. Il comando keytool è disponibile nella directory bin delle installazioni Java. La maggior parte delle implementazioni di NetWorker utilizza NetWorker Runtime Environment (NRE) per Java.
- Linux: /opt/nre/java/latest/bin
- Windows: C:\Programmi\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 e ROOTCA-SERVER sono solo esempi; è necessario sostituire questi valori con alias che corrispondono al server LDAPS e al server CA root (in genere viene utilizzato il nome host).
- Anche se i certificati non vengono visualizzati quando si utilizza findstr/grep. Controllarel'output senza restringere i risultati per verificare che non vi siano alias per il server LDAPS E/O il server CA root. findstr è stato utilizzato per brevità nell'esempio precedente.
- Lo storepass predefinito per il keystore di attendibilità Cacerts Java è "changeit".
- Sostituire JAVA_INSTALL_PATH con il percorso completo dell'installazione Java.
- Per rimuovere i certificati da authc.truststore e/o authc.keystore, specificare il percorso completo di questi file per -keystore e la password authc di NetWorker per -storepass. La password del keystore authc di NetWorker viene configurata durante l'installazione di NetWorker.
- Linux:
- /opt/nsr/authc-server/conf/authc.truststore
- /nsr/authc/conf/authc.keystore
- Windows:
- C:\Programmi\EMC NetWorker\nsr\authc-server\conf\authc.truststore
- C:\Programmi\EMC NetWorker\nsr\authc-server\tomcat\conf\authc.keystore
- Linux:
Se viene visualizzato un certificato, è necessario eliminarlo (altrimenti andare al passaggio successivo):
keytool -delete -alias ALIAS_NAME -keystore "PATH_TO_CACERTS_FILE" -storepass PASSWORD
Esempio:
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. Connettersi al server LDAPS utilizzando l'opensl:
openssl s_client -showcerts -connect LDAPS_SERVER:636
Esempio:
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. Copiare il certificato della catena, incluso l'intestazione -----BEGIN CERTIFICATE----- e il certificato -----END----- un piè di pagina in un file di testo, ad esempio chain.cer
3, b. Copiare il certificato radice, incluso il certificato -----BEGIN----- l'intestazione e il certificato -----END CERTIFICATE----- piè di pagina in un file di testo, ad esempio root.cer
4. Importare il certificato della catena nel keystore dell'attendibilità Cacerts Java, quindi importare tutti i certificati che conducono al certificato radice:
Esempio:
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
- Sostituire i valori degli alias con alias corrispondenti all'ambiente, ad esempio il nome host del server LDAPS e CA.
- Sostituire PATH_TO con il percorso completo del percorso dei file creati per chain.cer e root.cer.
- Accertarsi che non vengano visualizzati ulteriori errori durante l'importazione.
5. Riavviare i servizi NetWorker. Il servizio authc legge il keystore cacerts all'avvio:
Linux: nsr_shutdown
systemctl start networker
Windows: net stop nsrd /y & net start nsrd
6. Completare l'integrazione LDAPS:
NetWorker: Come configurare "AD over SSL" (LDAPS) dall'interfaccia utente web di NetWorker (NWUI)
Networker: Come configurare l'autenticazione LDAPS.