NetWorker. Сбой интеграции LDAPS с ошибкой «An SSL handshake error occurred while attempting to connect to LDAPS server: Unable to find valid certification path to requested target»
Summary: Вы пытаетесь выполнить authc_config/сценарий для добавления внешней аутентификации AD/LDAPS с помощью NetWorker. Сертификат LDAPS CA был импортован в хранилище ключей java cacerts, но отображается сообщение об ошибке «An SSL handshake error occurred while attempting to connect to LDAPS server: unable to find valid certification path to requested target» ...
Symptoms
«При попытке подключения к серверу LDAPS произошла ошибка подтверждения SSL: не удалось найти действительный путь сертификации к запрашиваемой целевой системе»
- Вы пытаетесь выполнить команду/authc_config для добавления внешней аутентификации AD/LDAPS с помощью NetWorker
- Вы можете успешно интегрировать AD/LDAP (не SSL) с NetWorker. Эта проблема возникает только при интеграции SSL (LDAPS)
- Ваш сертификат ЦС LDAPS был импортироваться в хранилище ключей «cacerts» JAVA.
- В вашей среде используется цепочка сертификатов.
Cause
Эта проблема возникает из-за того, что в хранилище ключей доверия Java импорт был импортован только сертификат цепочки. Для цепочки сертификатов все сертификаты в цепочке необходимо должным образом импортировать в хранилище ключей Java в правильном порядке (от нижней цепочки до корневого сертификата). Любая проблема импорта сертификата может привести к сбою проверки сертификата.
Это определяется при выполнении команды openssl с сервера NetWorker на сервере 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
Чтобы устранить ошибку сертификата, выполните следующую процедуру:
1. Удалите все ранее импортированные сертификаты из хранилища ключей доверия «cacerts» Java.
Процессы, используемые в этой статье базы знаний, используют команду Java keytool . Может потребоваться изменить каталог (cd) на каталог Java bin. В зависимости от установки Java и операционной системы это может отличаться от указанного. Команду keytool можно найти в каталоге java installations bin. В большинстве внедрений NetWorker используется Среда выполнения NetWorker (NRE) для 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 и ROOTCA-SERVER являются только примерами. Необходимо заменить эти значения псевдонимами, соответствующими серверу LDAPS и корневому серверу ЦС (обычно используется имя хоста).
- Даже если сертификаты не отображаются при использовании findstr/grep. R eview выходные данные без сужания результатов, чтобы убедиться в отсутствии псевдонимов для сервераLDAPS И/или корневого сервера ЦС. Findstr использовался для краткости в приведенном выше примере.
- По умолчанию для хранилища ключей доверия Cacerts Java используется значение changeit.
- Замените JAVA_INSTALL_PATH полным путем к установке Java.
- Чтобы удалить сертификаты из хранилища authc.truststore и/или authc.keystore, укажите полный путь к этим файлам для -keystore и пароль authc NetWorker для -storepass. Пароль хранилища ключей authc NetWorker настраивается во время установки 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:
Если появится сертификат, его необходимо удалить (в противном случае перейдите к следующему шагу):
keytool -delete -alias ALIAS_NAME -keystore "PATH_TO_CACERTS_FILE" -storepass PASSWORD
Пример.
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. Подключите к серверу LDAPS с помощью openssl:
openssl s_client -showcerts -connect LDAPS_SERVER:636
Примере:
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, а. Скопируйте сертификат цепочки, включая -----BEGIN CERTIFICATE----- заголовок и нижний колонтитул -----END CERTIFICATE----- в текстовый файл, например chain.cer
3, b. Скопируйте корневой сертификат, включая сертификат -----BEGIN----- и нижний колонтитул сертификата -----END----- в текстовый файл, например: root.cer
4. Импортируйте сертификат цепочки в хранилище доверия cacerts Java, а затем импортируйте все сертификаты, ведущие к корневому сертификату:
Пример.
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
- Замените значения псевдонимов псевдонимами, которые соответствуют вашей среде, например, имя хоста сервера LDAPS и ЦС.
- Замените PATH_TO полным путем к расположению файлов, созданных для chain.cer и root.cer.
- Убедитесь, что во время импорта не отображаются дополнительные ошибки.
5. Перезапустите службы NetWorker. Сервис authc считывает хранилище ключей cacerts при запуске:
Linux: nsr_shutdown
systemctl start networker
Windows: net stop nsrd /y && net start nsrd
6. Выполните интеграцию LDAPS.
NetWorker. Как настроить «AD over SSL» (LDAPS) в веб-интерфейсе NetWorker (NWUI)
Networker: Настройка аутентификации LDAPS.