网真 : 思科统一 IP 电话 7900 系列

解决IP电话不能访问企业/个人目录的最佳实践

2012 年 1 月 18 日 - 原创文档
其他版本: PDFpdf | 反馈

目录

技术领域
问题描述
背景介绍
问题分析
最佳实践

技术领域

CUCM 8.X, IP phone 7945, 7965, 7975

问题描述

用户最近完成了CUCM到8.X的升级,从此访问企业目录或者个人目录时,电话上显示主机不能被找到 (host not found)。此类问题只发生在7945等第三代电话上,而IP communicator不受影响。

背景介绍

从CUCM 8.X开始,CUCM引入了security by default的特性,通过https来加密IP电话和CUCM之间的通讯,从而用户在IP电话上输入的敏感信息不再担心被破解。

IP电话基于证书的信任关系来建立会话,但由于IP phone本身不存储https 服务器端的证书,所以他第一次建立会话时会向 CUCM上的 TVS (Trust Verification Service)请求证书验证,如果TVS信任当前的https服务器端的证书,IP phone就会信任此证书从而成功建立https会话,反之则会话建立失败。

问题分析

1. 从IP电话端的日志,我们可以确认IP Phone是否向TVS发起了证书验证请求,并且获得TVS认证的结果。

4166: NOT 14:52:33.535327 SECD: tvsBldMsg: The request id in the TVS request sent out is 1016
4167: NOT 14:52:33.537241 SECD: initiateTvsCertAuth: Successfully sent the certificate
Authentication request to TVS server, bytes written : 694
4168: NOT 14:52:33.539301 SECD: initiateTvsCertAuth: Done sending Certificate Validation request
4169: NOT 14:52:33.542561 SECD: sendTvsClientReqToSrvr: Authenticate Certificate : request sent to TVS server - waiting for
response
4174: NOT 14:52:33.558630 SECD: processTvsSrvrResponse: Success reading the message from the TVS server, len : 14
4175: NOT 14:52:33.559513 SECD: tvsDecodeSrvrResponse: messageType : 2, requestid : 1016,messageLen : 4
4176: NOT 14:52:33.563023 SECD: tvsDecodeSrvrResponse: status : 1, certLen : 0
4178: NOT 14:52:33.564833 SECD: processTvsSrvrResponse: Authentication Response received,status : 1
4179: ERR 14:52:33.565741 SECD: EROR:processTvsSrvrResponse: Authentication Response received with status failure

上面的错误表明TVS不信任当前IP phone发送过来的证书, 此证书即当前CUCM的tomcat 证书,文件名 tomcat.pem

2. 其次,我们从TVS的日志分析入手,查看为什么此证书不被信任

14:52:33.917 |-->debug
14:52:33.917 |   debug CertificateDBCache::getCertificateInformation - Looking up the certificate cache using Unique MAP ID : 53F15E319C7734063566E7BCFF370AC BCN=UCMA;OU=SJC;O=SJC;L=SJC;ST=SJC;C=US
14:52:33.917 |<--debug
14:52:33.917 |-->debug
14:52:33.917 |   debug ERROR:CertificateDBCache::getCertificateInformation - Cannot find the certificate in the cache

上面的错误表明当前的CUCM数据库中并不存在此证书。

3. 通过重新生成tomcat.pem和重新启动tomcat service,此问题得以解决。

最佳实践

1. 检查当前CUCM的TVS 是否正常运行。

2. 如果曾经更新过tomcat证书,重新启动相应CUCM服务器的Tomcat服务以确保服务器端使用的是最新的证书。(在CUCM的OS administration, Security, certificate management菜单下)

3. 如果当前Tomcat证书不被TVS信任,可重启TVS服务或重新生成tomcat证书并重新启动tomcat. (在CUCM的命令行下可以重启Tomcat服务,admin: utils service restart Cisco Tomcat)