简介
本文档介绍当“在线状态拓扑”页在即时消息和在线状态(IM&P)服务器节点上将服务显示为“未知”时,如何排除故障。
背景信息
导航到IM&P Administration web page > System > Presence Topology以验证服务器的运行状况时,可能会遇到服务器未处于正确的状态。在这种情况下,服务器在红色圆圈内显示一个白十字,即使服务是通过utils service list命令在命令行界面(CLI)上所示启动的。
本文档介绍这些错误显示在在线状态拓扑网页上的最常见原因以及如何修复它们。
问题
当您在一个受影响的节点上选择view时,您可以在网页上看到以下错误:服务的状态是unknown:
但是,如果您访问IM&P服务器的CLI安全外壳(SSH)会话并运行命令:utils service list,您会看到所有这些服务实际上都处于“STARTED”状态。
解决方案
GUI上的错误与Tomcat证书问题相关联。以下是需要验证的内容:
步骤1.确保所有Tomcat和Tomcat-trust证书均未过期,否则,需要重新生成这些证书。
步骤2.如果服务器使用CA签名的证书,则需要验证整个Tomcat链是否完整。这意味着中间证书和根证书需要作为Tomcat-trust上传。
以下是Tomcat链中缺少证书的示例。在这种情况下,Tomcat证书链仅包含两个证书:但是,根>枝叶,存在超过2个或3个中间证书构建链的情况。
在图像示例中,颁发者:mexrus-TENOCHTITLAN-CA缺少证书。
所需日志
导航到IM and Presence Serviceability > Trace > Trace Configuration > Server以选择:IM&P Publisher > Service Group > Database and Admin Services > Service:Cisco IM and Presence Admin > Apply to all Nodes > Debug level:Debug > Check the Enable All Trace Checkbox > Save。
导航到IM and Presence Administration > System > Presence Topology > 选择受未知服务影响的节点,并记下时间戳。
打开思科实时监控工具(RTMT)并收集以下日志:
- 思科系统日志
- Cisco Tomcat
- 思科Tomcat安全
- 事件查看器应用程序日志
- 事件查看器系统日志
- 思科即时消息和在线状态管理员日志
日志中的预期
从cupadmin*.log
当您访问Presence Topology > Node面板时。
2021-01-23 17:54:57,036 DEBUG [Thread-137] logging.IMPCommonLogger - IMPSocketFactory: Create socket called with host tenochtitlanIMP.mexrus.ru and port 8443
2021-01-23 17:54:57,040 DEBUG [Thread-137] logging.IMPCommonLogger - Enabled protocols: [TLSv1.1, TLSv1, TLSv1.2]
由于未验证证书,因此收到异常。
2021-01-23 17:54:57,087 ERROR [Thread-137] services.ServiceUtil - Got an exception setting up the HTTPS connection.
javax.net.ssl.SSLException: Certificate not verified.
at com.rsa.sslj.x.aH.b(Unknown Source)
at com.rsa.sslj.x.aH.a(Unknown Source)
at com.rsa.sslj.x.aH.a(Unknown Source)
at com.rsa.sslj.x.ap.c(Unknown Source)
at com.rsa.sslj.x.ap.a(Unknown Source)
at com.rsa.sslj.x.ap.j(Unknown Source)
at com.rsa.sslj.x.ap.i(Unknown Source)
at com.rsa.sslj.x.ap.h(Unknown Source)
at com.rsa.sslj.x.aS.startHandshake(Unknown Source)
at com.cisco.cup.services.ServiceUtil.init(ServiceUtil.java:118)
at com.cisco.cup.services.ServiceUtil.getServiceInfo(ServiceUtil.java:197)
at com.cisco.cup.services.ServiceUtil.getServiceInfo(ServiceUtil.java:182)
尝试检索拓扑的节点状态时:
at com.cisco.cup.admin.actions.TopologyNodeStatusAction$ServiceRunner.run(TopologyNodeStatusAction.java:358)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.rsa.sslj.x.aK: Certificate not verified.
at com.rsa.sslj.x.bg.a(Unknown Source)
at com.rsa.sslj.x.bg.a(Unknown Source)
at com.rsa.sslj.x.bg.a(Unknown Source)
... 13 more
由于Tomcat证书的颁发者缺失,导致异常。
Caused by: java.security.cert.CertificateException: Issuer for signed certificate [CN=tenochtitlanCM-ms.mexrus.ru,OU=Collab,O=Cisco,L=Mexico,ST=Mexico City,C=MX] not found: CN=mexrus-TENOCHTITLAN-CA,DC=mexrus,DC=ru
at com.cisco.cup.security.TLSTrustManager.checkServerTrusted(TLSTrustManager.java:309)
at com.rsa.sslj.x.aE.a(Unknown Source)
... 16 more
2021-01-23 17:54:57,087 DEBUG [Thread-137] actions.TopologyNodeStatusAction$ServiceRunner - Retrieved service status for node tenochtitlanIMP.mexrus.ru
2021-01-23 17:54:57,088 DEBUG [http-bio-443-exec-8] actions.TopologyNodeStatusAction - [Topology] VerifyNodeServices - Complete.
在cupadmin*.log跟踪中还可以发现另一种异常,其中显示错误“Incorrect issuer for server cert”:
Caused by: java.security.cert.CertificateException: Incorrect issuer for server cert
at com.cisco.cup.security.TLSTrustManager.checkServerTrusted(TLSTrustManager.java:226)
at com.rsa.sslj.x.aE.a(Unknown Source)
... 16 more
2017-10-14 09:04:01,667 ERROR [Thread-125] services.ServiceUtil - Failed to retrieve service status. Reason: Certificate not verified.
javax.net.ssl.SSLException: Certificate not verified.
在这种情况下,IM&P无法将Tomcat的颁发者证书识别为有效的颁发者证书,这可能是由于证书损坏导致的。此处的选项包括:
- 验证以下两种上提供的信息:Tomcat和Issuer证书。
- 获取另一个颁发者证书,并将其与IM&P信任库中已存在的证书进行比较。
- 从IM&P中删除颁发者证书并重新上传。
- 重新生成Tomcat CA证书。
注意:请注意Cisco Bug ID CSCvu78005,该漏洞是指Tomcat RSA/ECDSA Keystore's not update in all nodes when the existing CA certificate in the chain is replaced.
步骤1.在受影响的节点上运行utils diagnose test命令。
步骤2.联系思科技术支持中心(TAC)获取进一步帮助。