目录

简介

哪些Jabber客户端受此更改影响？

这对Jabber环境意味着什么？

需要哪些证书？

哪些方法可用于证书验证？

验证证书是自签名还是CA签名

生成 CSR

如何将证书导入用户设备证书存储区？

证书中的服务器标识

标识符字段

XMPP证书

HTTP证书

防止身份不匹配

为客户端提供XMPP域

相关信息

简介

本文档将多个思科资源整合到一个完整、统一的操作指南中，该指南用于在Cisco Jabber中实施证书验证的所有要求。这是必要的，因为Cisco Jabber现在需要使用证书验证才能与服务器建立安全连接。此要求需要用户环境可能需要许多更改。

注意：本指南仅用于内部部署。目前，云服务部署不需要更改，因为它们已通过公共证书颁发机构(CA)验证。

哪些Jabber客户端受此更改影响？

下表列出了实施证书验证的所有客户端：

表 1

桌面客户端

移动和平板电脑客户端

Macintosh版Jabber 9.2（2013年9月）

iPhone版Jabber 9.5（2013年10月）

Microsoft(MS)Windows版Jabber 9.2.5（2013年9月）

iPhone和iPad版Jabber 9.6版（2013年11月）

安卓版Jabber 9.6（2013年12月）

这对Jabber环境意味着什么？

当安装或升级到表1中列出的任何客户端时，服务器的强制证书验证将用于安全连接。实际上，当Jabber客户端现在尝试建立安全连接时，服务器会向Cisco Jabber提供证书。然后，Cisco Jabber尝试根据设备的证书存储验证这些证书。如果客户端无法验证证书，它会提示您确认是否要接受证书，并将其放在其企业信任库中。

需要哪些证书？

以下是为建立安全连接而提供给Cisco Jabber的内部部署服务器和证书的列表：

表 2

服务器

证书

Cisco Unified Presence

HTTP(Tomcat)

XMPP

思科统一通信管理器IM和在线状态

HTTP(Tomcat)

XMPP

Cisco Unified Communications Manager

HTTP(Tomcat)

Cisco Unity Connection

HTTP(Tomcat)

思科网迅会议服务器

HTTP(Tomcat)

以下是需要注意的要点：

- 在开始证书签名过程之前，应用思科统一在线状态(CUP)或思科统一通信管理器(CUCM)IM and Presence的最新服务更新(SU)。

- 所需的证书适用于所有服务器版本。例如，CUP版本8.x和CUCM IM and Presence版本9.x及更高版本均向客户端提供可扩展消息和在线状态协议(XMPP)和HTTP证书。

- 群集中的每个节点、订用者和发布者都运行Tomcat服务，并且可以向客户端提供HTTP证书。计划为群集中每个节点的证书签名。

- 要保护客户端和CUCM之间的会话发起协议(SIP)信令，请使用证书颁发机构代理功能(CAPF)注册。

哪些方法可用于证书验证？

目前可以使用多种认证验证方法。

方法 1：用户只需单击Accept以打开所有证书弹出窗口。这可能是适合较小环境的最理想解决方案。如果单击Accept，证书将放入设备上的企业信任存储中。将证书放入企业信任存储后，用户登录本地设备上的Jabber客户端时，不再提示用户。

方法 2：所需的证书(表2)从各个服务器下载（默认情况下，这些是自签名证书）并安装到用户设备的企业信任存储中。如果您的环境无法访问专用或公共CA进行证书签名，则这可能是理想的解决方案。

可以使用多种方法将这些证书推送给用户，但一种快速方法是使用Microsoft Windows注册表：

1. 从其中一台计算机，接受向Jabber提供的所有证书进入企业信任库。

2. 要验证证书是否存在，请输入Certmgr.msc命令并导航至Enterprise Trust > Certificates。

3. 使用run命令打开Regedit，然后导航至HKCU > Software > Microsoft > SystemCertificates > trust > Certificates。

4. 右键单击并将注册表中的证书文件夹导出为.reg文件。

5. 通过组策略对象(GPO)将此文件推送到所有用户（或其他首选方法）。

这将完成Jabber的企业信任证书安装，并且不再提示用户。

方法 3：公共或专用CA(表2)签署所有所需证书。这是思科推荐的方法。此方法要求为每个证书生成证书签名请求(CSR)，签名，重新上传到服务器，然后导入到用户设备上的受信任根证书颁发机构存储。请参阅生成CSR和如何获取证书到用户设备证书存储？的子菜单。

注意：如果是公共CA，根证书应已在客户端信任库中。

必须记住，公共CA通常需要CSR才能符合特定格式。例如，公共CA可能只接受以下CSR:

- 是Base64编码的

- 在“组织”、“组织单位”(OU)或其他字段中不包含某些字符，如@&!

- 在服务器的公钥中使用特定位长度

同样，如果您从多个节点提交CSR，公共CA可能要求所有CSR中的信息保持一致。

为防止您的CSR出现问题，请查看您计划向其提交CSR的公共CA的格式要求。然后，确保在配置服务器时输入的信息符合公共CA要求的格式。

您可能会遇到以下要求：

每个FQDN一个证书:某些公共CA仅为每个完全限定域名(FQDN)签署一个证书。

例如，为了对单个CUCM IM and Presence节点的HTTP和XMPP证书进行签名，您可能需要将每个CSR提交到不同的公共CA。

验证证书是自签名还是CA签名

注意：此示例适用于CUCM版本8.x。进程可能因服务器而异。

1. 导航至Cisco Unified OS Administration。

2. 选择Security > Certificate Management。

3. 查找并单击Tomcat-Trust Certificate .pem文件。

4. 单击Download和Save。

5. 导航到文件，然后使用.cer扩展名重命名。

6. 打开并查看此文件（MS Windows用户）。

7. 验证Issued by字段。如果与“已颁发到”字段匹配，则证书为“自签名”(请参阅示例)。

示例：自签名证书与私有CA签名证书

自签名                                                                                               私有CA签名

生成 CSR

注意：此示例适用于CUCM版本8.x。进程可能因服务器而异。

1. 导航至Cisco Unified OS Administration。

2. 选择Security > Certificate Management。

3. 单击Generate CSR，然后从下拉列表中选择Tomcat。

4. 单击“生成CSR”，然后单击“关闭”。

5. 单击Download CSR，然后从下拉列表中选择Tomcat。

6. 单击Download CSR，然后保存文件。

7. 发送要由私有CA服务器或公共CA签名的.csr文件。

注意：获得此CSR文件后，流程会因环境而异。

8. 单击Security > Certificate Management 下的Upload Certificate/Certificate Chain以重新上传颁发给服务器的新签名证书。

如何将证书导入用户设备证书存储区？

每个服务器证书都应在用户设备的信任库中存在关联的根证书。Cisco Jabber验证服务器根据信任库中的根证书存在的证书。

在以下情况下，将根证书导入MS Windows证书存储区：

- 证书由信任库中不存在的CA（例如专用CA）签名。如果是，您必须将专用CA证书导入受信任根证书颁发机构存储。

- 证书是自签名的。如果是，您必须将自签名证书导入企业信任库。

您可以使用任何适当的方法将证书导入MS Windows证书存储，例如：

- 使用证书导入向导可单独导入证书。

- 在MS Windows Server上使用CertMgr.exe命令行工具将证书部署到用户。（此选项要求您使用证书管理器工具CertMgr.exe，而不是证书MS管理控制台CertMgr.msc。）

- 在MS Windows Server上使用GPO将证书部署到用户。

注意：有关如何导入证书的详细说明，请参阅相应的MS文档。

证书中的服务器标识

在签名过程中，CA在证书中指定服务器标识。当客户端验证该证书时，它会检查：

- 受信任机构已颁发证书。

- 提供证书的服务器的标识与证书中指定的服务器的标识相匹配。

注意：公共CA通常需要FQDN作为服务器标识，而不是IP地址。

标识符字段

客户端在服务器证书中检查以下标识符字段以查找身份匹配：

XMPP证书

- SubjectAltName\OtherName\xmppAddr

- SubjectAltName\OtherName\srvName

- SubjectAltName\dnsNames

- 主题CN

HTTP证书

- SubjectAltName\dnsNames

- 主题CN

注意：Subject CN字段可以包含通配符(*)作为最左侧的字符；例如*.cisco.com。您的CUCM、CUP和Cisco Unity Connection服务器可能不支持通配符证书。(请参阅增强版Cisco Bug ID CSCta14114)。

防止身份不匹配

当Jabber客户端尝试使用IP地址连接到服务器，而服务器证书使用FQDN标识服务器时，客户端无法将服务器标识为受信任服务器并提示用户。因此，如果服务器证书标识具有FQDN的服务器，则必须在服务器上的许多位置将服务器名称指定为FQDN。

表3列出了所有需要指定服务器名称的位置，无论服务器名称是IP地址还是FQDN。

表 3

服务器

位置（设置必须与证书匹配）

Cisco Jabber客户端

登录服务器地址(客户端的地址不同，通常在“连接设置”下)

CUP（8.x及更低版本）

**所有节点名称(System > Cluster Topology)

**警告:确保如果将此更改为FQDN，则可以通过DNS解决此问题，或者服务器保持启动状态！

TFTP服务器(应用> Cisco Jabber >设置)

主要和次要Cisco Call Manager Cisco IP电话(CCMCIP)(应用> Cisco Jabber > CCMCIP配置文件)

语音邮件主机名(应用> Cisco Jabber >语音邮件服务器)

邮件存储名称（应用> Cisco Jabber >邮件存储）

会议主机名(应用程序> Cisco Jabber >会议服务器)（仅限Meeting Place）

XMPP域(请参阅为客户端提供XMPP域部分)

CUCM即时消息和在线状态（版本9.x及更高版本）

**所有节点名称(System > Cluster Topology)

**警告:确保如果将此更改为FQDN，则可以通过DNS解决此问题，或者服务器保持启动状态！

TFTP服务器(应用>传统客户端>设置)

主CCMCIP和辅助CCMCIP（应用>传统客户端> CCMCIP配置文件）

XMPP域(请参阅为客户端提供XMPP域部分)

CUCM（8.x及更低版本）

服务器名称(系统>服务器)

CUCM（9.x及更高版本）

服务器名称（系统>服务器）

IM and Presence Server(用户管理>用户设置> UC服务> IM and Presence)

语音邮件主机名(User Management > User Settings > UC Service > Voicemail)

邮件存储名称（用户管理>用户设置> UC服务>邮件存储）

会议主机名(（用户管理>用户设置> UC Service >会议）（仅限Meeting Place）

Cisco Unity Connection（所有版本）

无需更改

为客户端提供XMPP域

客户端使用XMPP域（而不是FQDN）标识XMPP证书。XMPP证书必须在标识符字段中包含XMPP域。

当客户端尝试连接到在线状态服务器时，在线状态服务器向客户端提供XMPP域。然后，客户端可以根据XMPP证书验证在线状态服务器的身份。

要确保在线状态服务器为客户端提供XMPP域，请完成以下步骤：

1. 打开在线状态服务器的管理界面，即Cisco Unified CM IM and Presence管理界面或Cisco Unified Presence管理界面，都可以打开。

2. 导航至System > Security > Settings。

3. 找到“XMPP证书设置”部分。

4. 在XMPP Server-to-Server Certificate Subject Alternative Name字段的Domain name（域名）中指定在线状态服务器域。

5. 选中Use Domain Name for XMPP Certificate Subject Alternative Name复选框。

6. Click Save.

7. 保存此更改后，必须在服务器上重新生成cup-xmpp证书。

8. 重新启动XCP路由器以使更改生效。

警告：重新启动XCP路由器会影响服务。

证书验证现在已完成！

相关信息

- Cisco Jabber 9.2.5版本说明

- Cisco Jabber:必需服务器证书验证技术说明

- 技术支持和文档 - Cisco Systems