上述第1项是不言自明的。要确定上述 2 项是否适用,请首先获取 DD 中的受信任主机列表:
# adminaccess trust show
对于此主机信任的每个主机,检查其升级历史记录,查看是否有任何主机安装了 DDOS 5.4(或更低版本)或 DDMC 1.1(或更低版本):
# system upgrade history
安装上述任何版本的系统很可能在安装时使用仅 1024 位长的公钥生成 CA 自签名证书,在升级到 DDOS/DDMC 7.1 后,JDK 不再接受这些证书。了解这些主机是否具有具有小公钥的证书的一种可能方法是向它们打开 GUI 并从浏览器检查证书详细信息(不同浏览器的执行此操作方式略有不同)。
要确认第 3 项(如果 DD GUI 故障日志针对此特定问题),请运行以下命令以打开“em.info”日志文件:
# log view debug/sm/em.info
搜索(使用正斜杠)以搜索这些日志(“...”表示为简洁起见,下面未显示某些日志):
+-----+-----+-----+ 系统(重新)启动 +-----+-----+-----+
...
26 Feb 2021 10:33:04,172 INFO [main] Setting the session cookie name to 'JSESSIONID-ddem___HTTPS'26
Feb 2021 10:33:04,172 INFO [main] Setting the xsrf cookie name to 'DD_SSO_TOKEN___HTTPS'26
Feb 2021 10:33:04,382 INFO [main] Injecting the SUN provider s X.509 factory to fix validation issues
...
26 Feb 2021 10:33:05,093 INFO [main] 重新初始化客户端和服务器之间的证书
26 Feb 2021 10:33:05,093 INFO [main] reloadthe certificate stores for the system
26 Feb 2021 10:33:05,097 INFO [main] Finished reloading the certificate stores
26 Feb 2021 10:33:05,097 ERROR [main] Exception during command execution: javax.net.ssl.SSLException - Error creating premaster secret.,将重试,尝试 # 1
26 Feb 2021 10:33:05,243 INFO [main] reinitializing the certificates between the client and the server
26 Feb 2021 10:33:05,243 INFO [main] reloading the certificate stores for the system
26 Feb 2021 10:33:05,246 INFO [main] Finished reloading the certificate stores
这表示此 DD 作为受信任状态导入的某些证书具有短密钥,因此 GUI 无法启动。
尽管 DDOS 7.1 或更高版本在提供具有小型公钥的证书时仍无法加载 GUI,但该问题已在 DDOS 6.2.1.40 及更高版本以及 DDOS 7.2.0.50 及更高版本的代码中得到解决,因此,如果在升级到任何此类版本时本地 CA 证书具有较小公钥, 证书将使用更长的密钥重新生成。
考虑到截至撰写本文(2022 年 8 月)时,不再支持 DDOS 6.2.1.x(仅适用于 DD2200 和 DD250 硬件)和 DDOS 7.x 以外的版本,因此没有提供任何解决方法,但对于有问题的 DD,您可以尝试使用更长的密钥重新生成主机和 CA 证书,然后在受影响的设备之间删除并重新添加信任:
# adminaccess trust del host dd-trusted-1 type mutual
# adminaccess certificate generate self-signed-cert regenerate-ca
# adminaccess trust add host dd-trusted-1 type mutual