目录

简介

先决条件

要求

使用的组件

背景信息

配置

步骤1.在Windows Server 2003上使用公共CA或设置CA

步骤2.检验主机名和设置

步骤3.生成并下载证书签名请求(CSR)

步骤4.使用Microsoft Windows 2003证书颁发机构签署CSR

步骤5.从CA获取根证书

步骤6.将CA根证书上传为CallManager信任

步骤7.将CA签名CallManager CSR证书上传为CallManager证书。

步骤8.创建SIP中继安全配置文件

步骤9.创建SIP中继

步骤10.创建路由模式

验证

故障排除

在CUCM上收集数据包捕获

收集CUCM跟踪

简介

本文档介绍在Communications Manager上使用证书颁发机构(CA)签名证书配置会话初始协议(SIP)传输层安全(TLS)中继的分步过程。

本文档后，将使用TLS对两个集群之间的SIP消息进行加密。

先决条件

要求

思科建议您了解：

- 思科统一通信管理器 (CUCM)

- SIP

使用的组件

本文档中的信息基于以下软件版本：

- CUCM 版本 9.1(2)

- CUCM 版本 10.5(2)

- 作为CA的Microsoft Windows Server 2003

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您使用的是真实网络，请确保您已经了解所有命令的潜在影响。

背景信息

如本图所示，使用证书的SSL握手。

配置

步骤1.在Windows Server 2003上使用公共CA或设置CA

请参阅链接：在Windows 2003服务器上设置CA

步骤2.检验主机名和设置

证书基于名称。在开始之前，请确保名称正确。

From SSH CLI

admin:show cert own CallManager

SignatureAlgorithm: SHA1withRSA (1.2.840.113549.1.1.5)

Issuer Name: CN=CUCMA, OU=cisco, O=cisco, L=cisco, ST=cisco, C=IN

Subject Name: CN=CUCMA, OU=cisco, O=cisco, L=cisco, ST=cisco, C=IN

要更改主机名，请参阅链接：在CUCM上更改主机名

步骤3.生成并下载证书签名请求(CSR)

CUCM 9.1(2)

要生成CSR，请导航至OS Admin > Security > Certificate Management > Generate CSR

在“证书名”字段中，从下拉列表中选择CallManager选项。

要下载CSR，请导航至OS Admin > Security > Certificate Management > Download CSR

在“证书名称”字段中，从下拉列表中选择CallManager选项。

CUCM 10.5(2)

要生成CSR，请导航到OS Admin > Security > Certificate Management > Generate CSR

1.在“证书目的”字段中，从下拉列表中选择CallManager。

2.在“密钥长度”字段中,从下拉列表中选择1024。

3.在Hash Algorithm字段中，从下拉列表中选择SHA1。

要下载CSR，请导航至OS Admin > Security > Certificate Management > Download CSR

在“证书目的”字段中，从下拉列表中选择CallManager选项。

注意：CallManager CSR使用1024位Rivest-Shamir-Addleman(RSA)密钥生成。

步骤4.使用Microsoft Windows 2003证书颁发机构签署CSR

这是使用Microsoft Windows 2003 CA签署CSR的可选信息。

1.打开认证中心。

2.右键单击CA图标，然后导航至“所有任务”>“提交新请求”

3.选择CSR并点击“打开”选项(适用于CSR(CUCM 9.1(2)和CUCM 10.5(2))

4.所有打开的CSR都显示在“待处理请求”文件夹中。右键单击每个CSR并导航到All Tasks > Issue以颁发证书。(适用于CSR(CUCM 9.1(2)和CUCM 10.5(2))

5.要下载证书，请选择“已颁发的证书”文件夹。

右键单击证书，然后单击“Open(打开)”选项。

6.将显示证书详细信息。要下载证书，请选择“详细信息”选项卡，然后单击“复制到文件……”按钮

7.在“证书导出向导”窗口中，单击Base-64 encoded X.509(.CER)单选按钮。

8.准确命名文件。此示例使用CUCM1052.cer格式。

对于CUCM 9.1(2)，请遵循相同的步骤。

步骤5.从CA获取根证书

打开“证书颁发机构”窗口。

要下载根CA

1.右键单击CA图标，然后单击“属性”选项。

2.在常规TAB中，单击“查看证书”。

3.在“证书”窗口中，单击“详细信息”选项卡。

4.单击“复制到文件……”

步骤6.将CA根证书上传为CallManager信任

要上传CA根证书，请登录到OS Admin > Security > Certificate Management > Upload Certificate/Certificate Chain

注意：在CUCM(CUCM 9.1(2)和CUCM 10.5(2))上执行以下步骤

步骤7.将CA签名CallManager CSR证书上传为CallManager证书。

要上传CA签名CallManager CSR，请登录OS Admin > Security > Certificate Management > Upload Certificate/Certificate Chain

注意：在CUCM(CUCM 9.1(2)和CUCM 10.5(2))上执行以下步骤

步骤8.创建SIP中继安全配置文件

CUCM 9.1(2)

要创建SIP中继安全配置文件，请导航至System > Security > SIP Trunk Security Profile。

复制现有的非安全SIP中继配置文件并为其指定新名称。在示例中，已使用安全SIP中继配置文件TLS重命名非安全SIP中继配置文件。

在X.509主题名称中，使用CUCM 10.5(2)（CA签名证书）的公用名(CN)，如下图所示。

CUCM 10.5(2)

导航至System > Security > SIP Trunk Security Profile。

复制现有的非安全SIP中继配置文件并为其指定新名称。在示例中，使用安全SIP中继配置文件TLS重命名了非安全SIP中继配置文件。

在X.509主题名称中，使用CUCM 9.1(2)（CA签名证书）的CN，如突出显示：

两个SIP中继安全配置文件都将传入端口设置为5061，其中每个集群在TCP端口5061上侦听新的入站SIP TLS呼叫。

步骤9.创建SIP中继

创建安全配置文件后，创建SIP中继，并在SIP中继上更改以下配置参数。

CUCM 9.1(2)

1. 在SIP Trunk Configuration(SIP中继配置)窗口中，选中配置参数SRTP Allowed(允许SRTP)复选框。

这可确保用于此中继上呼叫的实时传输协议(RTP)的安全。只有在使用SIP TLS时，才必须选中此框，因为安全实时传输协议(SRTP)的密钥在SIP消息正文中交换。SIP信令必须由TLS保护，否则任何具有非安全SIP信令的人都可以通过中继解密相应的SRTP流。

2. 在SIP中继配置窗口的SIP信息部分，添加目标地址、目标端口和SIP中继安全配置文件。

CUCM 10.5(2)

1. 在SIP Trunk Configuration(SIP中继配置)窗口中，选中配置参数SRTP Allowed(允许SRTP)复选框。

这允许SRTP用于通过此中继的呼叫。只有在使用SIP TLS时，才必须选中此框，因为SRTP的密钥在SIP消息的正文中交换。SIP信令必须由TLS保护，因为任何具有非安全SIP信令的人都可以通过中继解密相应的安全RTP流。

2. 在SIP中继配置窗口的SIP信息部分，添加目标IP地址、目标端口和安全配置文件

步骤10.创建路由模式

最简单的方法是在每个集群上创建一个路由模式，直接指向SIP中继。还可以使用路由组和路由列表。

CUCM 9.1(2)通过TLS SIP中继指向路由模式9898到CUCM 10.5(2)

CUCM 10.5(2)通过TLS SIP中继指向到CUCM 9.1(2)的路由模式1018

验证

当前没有可用于此配置的验证过程。

故障排除

SIP TLS呼叫可通过以下步骤进行调试。

在CUCM上收集数据包捕获

要检查CUCM 9.1(2)和CUCM 10.5(2)之间的连接，请在CUCM服务器上捕获数据包并观察SIP TLS流量。

SIP TLS流量在TCP端口5061上传输，被视为sip-tls。

在以下示例中，与CUCM 9.1(2)建立了SSH CLI会话

1.屏幕上的CLI数据包捕获

此CLI在屏幕上显示SIP TLS流量的输出。

admin:utils network capture host ip 10.106.95.200

Executing command with options:

interface=eth0

ip=10.106.95.200

19:04:13.410944 IP CUCMA.42387 > 10.106.95.200.sip-tls: P 790302485:790303631(1146) ack 3661485150 win 182 <nop,nop,timestamp 2864697196 5629758>

19:04:13.450507 IP 10.106.95.200.sip-tls > CUCMA.42387: . ack 1146 win 249 <nop,nop,timestamp 6072188 2864697196>

19:04:13.465388 IP 10.106.95.200.sip-tls > CUCMA.42387: P 1:427(426) ack 1146 win 249 <nop,nop,timestamp 6072201 2864697196>

2. CLI捕获到文件

此CLI根据主机执行数据包捕获并创建名为packets的文件。

admin:utils network capture eth0 file packets count 100000 size all host ip 10.106.95.200

在CUCM 9.1(2)上重新启动SIP中继，并从分机1018(CUCM 9.1(2))呼叫分机9898(CUCM 10.5(2))

要从CLI下载文件，请运行以下命令：

admin:file get activelog platform/cli/packets.cap

捕获以标准.cap格式完成。本示例使用Wireshark打开packets.cap文件，但可以使用任何数据包捕获显示工具。

1. 传输控制协议(TCP)同步(SYN)，用于在CUCM 9.1(2)（客户端）和CUCM 10.5(2)（服务器）之间建立TCP通信。

2. CUCM 9.1(2)发送客户端Hello以启动TLS会话。

3. CUCM 10.5(2)发送服务器Hello、服务器证书和证书请求以启动证书交换过程。

4. 客户端CUCM 9.1(2)为完成证书交换而发送的证书。

5. 加密SIP信令的应用数据显示已建立TLS会话。

进一步检查是否交换了正确的证书。服务器Hello后，服务器CUCM 10.5(2)将其证书发送到客户端CUCM 9.1(2)。

服务器CUCM 10.5(2)具有的序列号和主题信息将呈现给客户端CUCM 9.1(2)。序列号、主题、颁发者和有效日期均与“OS管理员证书管理”(OS Admin Certificate Management)页面上的信息进行比较。

服务器CUCM 10.5(2)提供自己的证书进行验证，现在它检查客户端CUCM 9.1(2)的证书。 验证在两个方向进行。

如果数据包捕获中的证书与操作系统管理网页中的证书不匹配，则不会上传正确的证书。

正确的证书必须上传到OS Admin Cert页面。

收集CUCM跟踪

CUCM跟踪还有助于确定CUCM 9.1(2)和CUCM 10.5(2)服务器之间交换的消息，以及SSL会话是否正确建立。

在本例中，已收集来自CUCM 9.1(2)的跟踪。

呼叫流:

分机1018 > CUCM 9.1(2)> SIP TLS TRUNK > CUCM 10.5(2)>分机9898

++数字分析

04530161.009 |19:59:21.185 |AppInfo |Digit analysis: match(pi="2", fqcn="1018", cn="1018",plv="5", pss="", TodFilteredPss="", dd="9898",dac="0")

04530161.010 |19:59:21.185 |AppInfo |Digit analysis: analysis results

04530161.011 |19:59:21.185 |AppInfo ||PretransformCallingPartyNumber=1018

|CallingPartyNumber=1018

|DialingPartition=

|DialingPattern=9898

|FullyQualifiedCalledPartyNumber=9898

++ SIP TLS正在端口5061上用于此呼叫。

04530191.034 |19:59:21.189 |AppInfo |//SIP/SIPHandler/ccbId=0/scbId=0/SIP_PROCESS_ENQUEUE: createConnMsg tls_security=3

04530204.002 |19:59:21.224 |AppInfo |//SIP/Stack/Transport/0x0/sipConnectionManagerProcessConnCreated: gConnTab=0xb444c150, addr=10.106.95.200, port=5061, connid=12, transport=TLS Over TCP

04530208.001 |19:59:21.224 |AppInfo |SIPTcp - wait_SdlSPISignal: Outgoing SIP TCP message to 10.106.95.200 on port 5061 index 12

[131,NET]

INVITE sip:9898@10.106.95.200:5061 SIP/2.0

Via: SIP/2.0/TLS 10.106.95.203:5061;branch=z9hG4bK144f49a43a

From: <sip:1018@10.106.95.203>;tag=34~4bd244e4-0988-4929-9df2-2824063695f5-19024196

To: <sip:9898@10.106.95.200>

Call-ID: 94fffc00-57415541-7-cb5f6a0a@10.106.95.203

User-Agent: Cisco-CUCM9.1

++信号分布层(SDL)消息SIPCertificateInd提供有关主题CN和连接信息的详细信息。

04530218.000 |19:59:21.323 |SdlSig   |SIPCertificateInd                     |wait                          |SIPHandler(1,100,72,1)           |SIPTcp(1,100,64,1)               |1,100,17,11.3^*^*                       |[T:N-H:0,N:1,L:0,V:0,Z:0,D:0] connIdx= 12 --remoteIP=10.106.95.200 --remotePort = 5061 --X509SubjectName /C=IN/ST=cisco/L=cisco/O=cisco/OU=cisco/CN=CUCM10 --Cipher AES128-SHA --SubjectAltname =

04530219.000 |19:59:21.324 |SdlSig   |SIPCertificateInd                     |restart0                       |SIPD(1,100,74,16)               |SIPHandler(1,100,72,1)           |1,100,17,11.3^*^*                       |[R:N-H:0,N:0,L:0,V:0,Z:0,D:0] connIdx= 12 --remoteIP=10.106.95.200 --remotePort = 5061 --X509SubjectName /C=IN/ST=cisco/L=cisco/O=cisco/OU=cisco/CN=CUCM10 --Cipher AES128-SHA --SubjectAltname =