NetWorker : L’intégration LDAPS échoue avec l’erreur « An SSL handshake error occurred while attempting to connect to LDAPS server : Unable to find valid certification path to requested target »
Summary: Vous tentez d’exécuter la commande/script authc_config pour ajouter l’authentification externe AD/LDAPS avec NetWorker. Votre certificat CA LDAPS a été importé dans le magasin de certificats JAVA, mais reçoit le message d’erreur « 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»
- Vous tentez d’exécuter la commande/script authc_config pour ajouter l’authentification externe AD/LDAPS avec NetWorker
- Vous pouvez intégrer AD/LDAP (non SSL) avec NetWorker ; Le problème ne s’affiche que lors de l’intégration de SSL (LDAPS)
- Votre certificat d’autorité de certification LDAPS a été importé dans le magasin de certificats JAVA.
- Vous utilisez une « chaîne de certificats » dans votre environnement.
Cause
Ce problème se produit car seul le certificat de chaîne a été importé dans le magasin de certificats de confiance Java. Pour une chaîne de certificats, tous les certificats de la chaîne doivent être importés correctement dans le magasin de certificats Java dans l’ordre approprié (chaîne inférieure au certificat racine). Tout problème lors de l’importation du certificat entraîne l’échec de la vérification du certificat.
Cela est identifié lorsque vous exécutez la commande openssl à partir de votre serveur NetWorker vers le serveur 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
Pour résoudre l’erreur de certificat, suivez la procédure ci-dessous :
1. Supprimez tous les certificats précédemment importés du magasin de certificats de confiance Java.
Les processus de cet article de la base de connaissances s’appuient sur la commande Java keytool . Il peut être nécessaire de remplacer le répertoire (cd) par le répertoire bin Java. En fonction de l’installation java et du système d’exploitation, cela peut varier. La commande keytool se trouve dans le répertoire bin des installations Java. La plupart des implémentations NetWorker utilisent NetWorker Runtime Environment (NRE) pour 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 et ROOTCA-SERVER ne sont que des exemples. Vous devez remplacer ces valeurs par des alias qui correspondent à votre serveur LDAPS et au serveur d’autorité de certification racine (généralement le nom d’hôte est utilisé).
- Même si les certificats ne sont pas affichés lors de l’utilisation de 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 dans l’exemple ci-dessus.
- Le fichier storepass par défaut pour le magasin de certificats de confiance Java est « changeit ».
- Remplacez JAVA_INSTALL_PATH par le chemin complet de votre installation Java.
- Pour supprimer les certificats du fichier authc.truststore et/ou authc.keystore, spécifiez le chemin complet de ces fichiers pour -keystore et le mot de passe Authc NetWorker pour -storepass. Le mot de passe du magasin de clés Authc NetWorker est configuré lors de l’installation de 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 :
Si un certificat s’affiche, vous devez le supprimer (sinon passez à l’étape suivante) :
keytool -delete -alias ALIAS_NAME -keystore "PATH_TO_CACERTS_FILE" -storepass PASSWORD
Exemple :
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. Connectez-vous au serveur LDAPS à l’aide de openssl :
openssl s_client -showcerts -connect LDAPS_SERVER :636
Exemple:
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. Copiez le certificat de chaîne, y compris l’en-tête -----BEGIN CERTIFICATE----- et le pied de page -----END CERTIFICATE----- dans un fichier texte, par exemple chain.cer
3, b. Copiez le certificat racine, y compris l’en-tête -----BEGIN CERTIFICATE----- et le -----END CERTIFICATE----- pied de page dans un fichier texte, par exemple root.cer
4. Importez le certificat de chaîne dans le magasin de certificats de confiance Java, puis importez tous les certificats menant au certificat racine :
Exemple :
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
- Remplacez les valeurs d’alias par des alias qui correspondent à votre environnement, par exemple, le nom d’hôte du serveur LDAPS et CA.
- Remplacez PATH_TO par le chemin complet vers l’emplacement des fichiers que vous avez créés pour chain.cer et root.cer.
- Assurez-vous qu’aucune erreur supplémentaire n’est générée lors de l’importation.
5. Redémarrez les services NetWorker. Le service authc lit le magasin de certificats cacerts au démarrage :
Linux : nsr_shutdown
systemctl start networker
Windows : net stop nsrd /y &> net start nsrd
6. Terminez l’intégration LDAPS :
NetWorker : Comment configurer « AD over SSL » (LDAPS) à partir de l’interface utilisateur Web NetWorker (NWUI)
Networker: Comment configurer l’authentification LDAPS.