NetWorker:在 Windows 主机上安装 NMC 服务器失败“无法验证身份验证服务器的主机和/或端口”
概要: Windows 主机上的 NetWorker Management Console (NMC) 升级或安装失败。安装会立即返回“无法验证身份验证服务器的主机名和/或端口”。
現象
- NetWorker Management Console (NMC) 服务器安装在 Windows 平台上。
- 将 NMC 软件安装或升级到 19.13.x(或更高版本)时出现以下错误:
- NMC 服务器可以解析并通过 TCP 连接到身份验证服务器端口 (9090)。从 Windows PowerShell 中,运行:
tnc AUTHC_SERVER_HOSTNAME -p 9090 - 以下 PowerShell 命令返回 SSPI 错误:
$server = "AUTHC_SERVER_HOSTNAME" $port = 9090 $tcp = [System.Net.Sockets.TcpClient]::new() $tcp.Connect($server, $port) $ssl = [System.Net.Security.SslStream]::new( $tcp.GetStream(), $false, { param($sender,$cert,$chain,$errors) $true } ) try { $ssl.AuthenticateAsClient($server) "=== Protocol ===" $ssl.SslProtocol "=== Cipher ===" "$($ssl.CipherAlgorithm) ($($ssl.CipherStrength)-bit)" "=== Certificate Chain (PEM) ===" # Build the chain from the remote leaf certificate $remoteCert = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new($ssl.RemoteCertificate) $xchain = [System.Security.Cryptography.X509Certificates.X509Chain]::new() $null = $xchain.Build($remoteCert) $i = 0 foreach ($elem in $xchain.ChainElements) { $i++ $c = $elem.Certificate "----- Certificate $i -----" "Subject : $($c.Subject)" "Issuer : $($c.Issuer)" "NotBefore: $($c.NotBefore)" "NotAfter : $($c.NotAfter)" "" } } finally { $ssl.Dispose() $tcp.Dispose() }示例:
- 从 NetWorker 服务器的 Web 浏览器访问以下 URL 报告 TLS 问题:
https://NETWORKER_SERVER_HOSTNAME:9090/nwrestapi/v3/global
原因
总结:
NetWorker AuthC 服务与 Windows Server 主机之间存在 TLS 密码套件不匹配。NetWorker 19.13.x AuthC 配置为仅允许现代 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384和 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 加密套件。Windows Server 主机未通告支持这些加密套件,导致没有相互支持的加密套件可用于 TLS 协商。因此,TLS 握手失败,无法建立与 AuthC 服务的连接。
在升级情形中,以前的 NetWorker 版本可能允许使用与操作系统通告的密码套件一致的其他基于 CBC 或基于 RSA 的密码套件。升级到 NetWorker 19.13.x 后,限制性更严格的 AuthC 密码配置暴露了密码套件不兼容性。
验证步骤:
要验证操作系统通告的密码套件,请从 NetWorker AuthC 服务器上的提升 PowerShell 提示符运行以下命令: Get-TlsCipherSuite
比较以下项的输出: Get-TlsCipherSuite 命令替换为 AUTHC 服务器 C:\Program Files\EMC NetWorker\nsr\authc-server\tomcat\conf\server.xml 文件。具体而言,以下行:
<SSLHostConfig protocols="TLSv1.2" sslProtocol="TLS" ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256" >
如果操作系统未通告 NetWorker AuthC 使用的密码,则 TLS 协商会失败。这会影响与 AuthC 服务的任何连接;例如:NMC 安装、NetWorker Web 用户界面 (NWUI) 安装、REST API 功能等。
解決方法
咨询操作系统和安全管理团队,以配置系统以通告与 NetWorker 一致的密码。此问题发生在 NetWorker 之外。
解决方法:
配置 NetWorker AuthC 以使用与操作系统通告的内容一致的密码。
- 创建以下内容的拷贝:
C:\Program Files\EMC NetWorker\nsr\authc-server\tomcat\conf\server.xml文件。 - 打开
C:\Program Files\EMC NetWorker\nsr\authc-server\tomcat\conf\server.xml文件。 - 修改:
<SSLHostConfig protocols="TLSv1.2" sslProtocol="TLS" ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256" >
更改为
<SSLHostConfig protocols="TLSv1.2" sslProtocol="TLS" ciphers="TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_256_GCM_SHA384" >
Get-TlsCipherSuite。这些密码被认为不如使用 NetWorker 19.13.x 配置的默认密码安全。这只能作为临时解决方案来完成。您必须与操作系统和安全管理团队讨论如何配置与 NetWorker 一致的强化操作系统密码。在将操作系统配置为通告之后 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384和 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 您可以恢复到原始版本 server.xml 使用默认(强化)密码。这需要重新启动 NetWorker 服务器服务。
- 重新启动 NetWorker 服务器服务(PowerShell 语法):
net stop nsrd ; net start nsrd - 安装 NetWorker Management Console (NMC)。如果出现提示,请将 AuthC 证书安装到本地计算机的受信任根证书:
- 单击 查看证书。
- 在证书中,单击 安装证书。
- 选择 本地计算机, 然后单击下一步。
- 选择 将所有证书放入以下存储,然后单击浏览。
- 选择 受信任的根证书颁发机构,然后单击 确定。
- 在证书安装向导中,单击 下一步。
- 单击完成。
- 您可能会收到一个弹出窗口,提示“导入成功”,单击 确定。
- 在证书窗口中,单击 确定。
- 从安全警报窗口中,单击 是。
- 完成 NMC 安装。