NetWorker:LDAPS 集成失败,并显示“在尝试连接到 LDAPS 服务器时发生 SSL 握手错误:Unable to find valid certification path to requested target”

Summary: 您正在尝试运行authc_config命令/脚本,以便向 NetWorker 添加 AD/LDAPS 外部身份验证。您的 LDAPS CA 证书已导入到 JAVA cacerts 密钥库,但收到错误消息“An SSL handshake error occurred while attempting to LDAPS server: unable to find valid certification path to requested target” ...

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

以下描述导致错误消息
An SSL handshake error occurred while attempting to connect to LDAPS server: unable to find valid certification path to requested target”(尝试连接到 LDAPS 服务器时发生 SSL 握手错误:无法找到请求目标的有效认证路径的情况
  • 您尝试运行authc_config命令/脚本,以便使用 NetWorker 添加 AD/LDAPS 外部身份验证
  • 您可以成功将 AD/LDAP(非 SSL)与 NetWorker 集成;仅在集成 SSL (LDAPS) 时才会出现此问题
  • 您的 LDAPS CA 证书已导入 JAVA cacerts 密钥库。
  • 您在环境中使用“证书链”。

Cause

根据NetWorker:如何配置 LDAPS 身份验证,您必须从 NetWorker 服务器上的 Java 信任密钥库中的 LDAPS 服务器导入 CA 证书,才能配置 LDAPS 外部身份验证。

出现此问题的原因是仅将链证书导入到 Java 信任密钥库。  对于证书链, 链中的所有证书都应按正确的链顺序正确导入到 Java 密钥库(下链到根证书)。导入证书时出现的任何问题都将导致证书验证失败。

当您从 NetWorker 服务器运行 openssl 命令到 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

提醒:此过程中的最后一个步骤包括重新启动 NetWorker 服务器服务,以便在身份验证启动时读取导入 cacerts 密钥库的证书。在完成以下操作之前,确保未运行任何作业。


要解决证书错误,请按照以下过程操作:

1.从 Java cacerts 信任密钥库中删除以前导入的任何证书。

提醒:如果您已将证书导入 NetWorker authc.truststore 和/或 authc.keystore,则需要删除它们。
 

此 KB 中的进程利用 Java keytool 命令。可能需要将目录 (cd) 更改为 Java bin 目录。根据 Java 安装和操作系统,这可能有所不同。keytool 命令可在 Java 安装 bin 目录中找到。大多数 NetWorker 实施都使用 NetWorker Runtime Environment (NRE) for 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 服务器和根 CA 服务器对应的别名(通常使用主机名)。
  • 即使使用 findstr/grep 时未显示证书。在不缩小结果的情况下查看输出,以确认 LDAPS 服务器和/或根 CA 服务器没有别名。 在上面的示例中,findstr 用于简洁性。
  • Java cacerts 信任密钥库的默认 存储通道 是“changeit”。
  • 将JAVA_INSTALL_PATH替换为 Java 安装的完整路径。
  • 要从 authc.truststore 和/或 authc.keystore 中删除证书,请为 -keystore 指定这些文件的完整路径,并为 -storepass 指定 NetWorker authc 密码。在安装 NetWorker 期间配置 NetWorker authc 密钥库密码。
    • 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

如果出现证书,则必须将其删除(否则转至下一步):

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.使用 openssl 连接到 LDAPS 服务器:

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-----
提醒:默认情况下,Windows 通常不安装 OpenSSL;但是,Linux 会这样做。如果您的环境中有 Linux 系统,则只需使用该系统即可使用 OpenSSL 收集 SSL 证书信息;否则,请检查是否可以在 Windows NetWorker 服务器上安装 OpenSSL。

3、 a.链证书(包括-----BEGIN证书-----标头和-----END CERTIFICATE-----页脚复制到文本文件中,例如:chain.cer

3、b. 根证书(包括-----BEGIN证书-----标头和-----END CERTIFICATE-----页脚复制到文本文件中,例如:root.cer

4。将链证书导入 Java cacerts 信任密钥库,然后导入所有证书,直至根证书:

示例:

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 和 CA 服务器的主机名。
  • 将 PATH_TO 替换为为 chain.cer 和 root.cer 创建的文件位置的完整路径。
  • 确保导入期间不会输出其他错误。

5.重新启动 NetWorker 服务。authc 服务在启动时读取 cacerts 密钥库:

Linux:nsr_shutdown
systemctl start networker

Windows: net stop nsrd /y & net start nsrd

警告:如果未重新启动 NetWorker 服务,则不会读取证书更改,并且问题仍然存在。


6.完成 LDAPS 集成:

NetWorker:如何从 NetWorker Web 用户界面 (NWUI) 配置“AD over SSL”(LDAPS)
NetWorker:如何配置 LDAPS 身份验证。

Additional Information

Affected Products

NetWorker

Products

NetWorker
Article Properties
Article Number: 000173094
Article Type: Solution
Last Modified: 23 May 2025
Version:  5
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.