简介
本文档介绍如何生成证书签名请求(CSR)并将签名证书上传到思科会议服务器(CMS)
先决条件
要求
Cisco 建议您了解以下主题:
使用的组件
本文档中的信息基于以下软件和硬件版本:
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
生成CSR
有两种生成CSR的方法,其中一种是通过管理员访问权限从命令行界面(CLI)直接在CMS服务器上生成CSR,另一种是通过外部第三方证书颁发机构(CA)(如Open SSL)生成CSR。
在这两种情况下,CSR都必须使用正确的语法生成,CMS服务才能正常工作。
步骤1.语法结构
pki csr <key/cert basename> <CN:value> [OU:<value>] [O:<value>] [ST:<-value>] [C:<value>] [subjectAltName:<value>]
- <key/cert basename>是标识新密钥和CSR名称的字符串。它可以包含字母数字、连字符或下划线字符。这是必填字段。
- <CN:value>是公用名。这是完全限定域名(FQDN),指定服务器在域名系统(DNS)中的确切位置。 这是必填字段。
- [OU:<value>]是组织单位或部门名称。例如,支持、IT、工程师、财务。这是可选字段。
- [O:<value>]是组织名称或业务名称。通常为合法注册的公司名称。这是可选字段。
- [ST:<value>]是省、地区、县或州。例如,白金汉郡加利福尼亚。这是可选字段。
- [C:<value>]是国家/地区。贵组织所在国家/地区的国际标准化组织(ISO)代码,由两个字母组成。例如,US、GB、FR。这是可选字段。
- [subjectAltName:<value>]是使用者替代名称(SAN)。从X509版本3(RFC 2459)开始,安全套接字层(SSL)证书可以指定证书必须匹配的多个名称。此字段使生成的证书涵盖多个域。它可以包含IP地址、域名、邮件地址、常规DNS主机名等,用逗号分隔。如果已指定,则还必须将CN包含在此列表中。虽然这是可选字段,但必须填写SAN字段才能使可扩展消息传送和在线状态协议(XMPP)客户端接受证书,否则XMPP客户端显示证书错误。
步骤2.生成Callbridge、Smpp、Webadmin和Webbridge CSR
- 使用Putty访问CMS CLI并使用管理员帐户登录。
- 运行以下命令,以便为CMS上所需的每项服务创建CSR。也可以创建具有通配符(*.com)或集群FQDN作为CN、每个CMS服务器的FQDN并在必要时加入URL的单个证书。
服务 |
命令
|
Webadmin |
pki csr CN:
|
Webbridge |
pki csr CN: subjectAltName:,
|
Callbridge
TURN
负载均衡器
|
pki csr CN:
|
- 如果CMS是集群的,请运行以下命令。
服务 |
命令 |
Callbridge
TURN
负载均衡器
|
pki csr CN: subjectAltName:
|
XMPP |
pki csr CN: subjectAltName:,
|
步骤3.生成数据库集群CSR并使用内置CA对其进行签名
从CMS 2.7开始,您需要拥有数据库集群的证书。 在2.7中,我们包含一个可用于签署数据库证书的内置CA。
- 在所有内核上,运行database cluster remove。
- 在Primary上,运行pki selfsigned dbca CN。示例:Pki selfsigned dbca CN:tplab.local
- 在主上,运行pki csr dbserver CN:cmscore1.example.com subjectAltName。 示例:cmscore2.example.com,cmscore3.example.com。
- 在主上,为数据库clientpki csr dbclient CN:postgres创建证书。
- 在主上,使用dbca对dbserver certpki签名dbserver dbca。
- 在主上,使用dbca签署dbclient证书pki签署dbclient dbca。
- 将dbclient.crt复制到需要连接到数据库节点的所有服务器
- 将dbserver.crt文件复制到已加入数据库的所有服务器(构成数据库集群的节点)。
- 将dbca.crt文件复制到所有服务器。
- 在主DB服务器上,运行database cluster certs dbserver.key dbserver.crt dbclient.key dbclient.crt dbca.crt。 这使用dbca.crt作为根ca-cert。
- 在主数据库服务器上,运行数据库集群localnode a。
- 在主数据库服务器上,运行数据库集群初始化。
- 在主数据库服务器上,运行数据库群集状态。 必须查看节点:(me):已连接的主设备。
- 在加入数据库集群的所有其他核心上,运行database cluster certs dbserver.key dbserver.crt dbclient.key dbclient.crt dbca.crt。
- 在连接到数据库群集(未与数据库共置)的所有内核上,运行database cluster certs dbclient.key dbclient.crt dbca.crt
.
- 在已加入的内核上(与数据库共置):
- 运行database cluster localnode a。
- 运行数据库群集联接。
- 在已连接(未与数据库共置)的内核上:
- 运行数据库集群localnode a
.
- 运行数据库群集连接
.
步骤4.验证签名证书
- 证书有效性(到期日期)可以通过证书检查进行验证,请运行命令pki inspect <filename>。
- 您可以验证证书是否与私钥匹配,请运行命令pki match <keyfile> <certificate file>。
- 要验证证书是否由CA签名以及证书捆绑包是否可用于对其进行确认,请运行命令pki verify <cert> <certificate bundle/Root CA>。
步骤5.将签名证书应用于CMS服务器上的组件
- 要向Webadmin应用证书,请运行以下命令:
webadmin disable
webadmin certs <keyfile> <certificate file> <certificate bundle/Root CA>
webadmin enable
- 要向Callbridge应用证书,请运行以下命令:
callbridge certs <keyfile> <certificate file> <certificate bundle/Root CA>
callbridge restart
- 要向Webbridge应用证书,请运行以下命令(在CMS 3.x中替换为具有新配置要求的webbridge3):
webbridge disable
webbridge certs <keyfile> <certificate file> <certificate bundle/Root CA>
webbridge enable
- 要将证书应用到XMPP,请运行以下命令(在CMS 3.x中不可用):
xmpp disable
xmpp certs <keyfile> <certificate file> <certificate bundle/Root CA>
xmpp enable
- 要将证书应用到数据库或替换当前数据库群集上的过期证书,请运行以下命令:
database cluster remove (on all servers, noting who was primary before beginning)
database cluster certs <server_key> <server_certificate> <client_key> <client_certificate> <Root ca_crt>
database cluster initialize (only on primary node)
database cluster join <FQDN or IP of primary> (only on slave node)
database cluster connect <FQDN or IP of primary> (only on nodes that are not part of the database cluster)
- 要将证书应用到TURN,请运行以下命令:
turn disable
turn certs <keyfile> <certificate file> <certificate bundle/Root CA>
turn enable
证书信任链和捆绑包
从CMS 3.0开始,您需要使用证书信任链或完整链信任。 此外,对于您认识到在制作捆绑包时如何构建证书的任何服务而言,这一点也很重要。
当按照Web网桥3的需要构建证书信任链时,必须按照图中所示构建证书信任链,其中entity cert位于顶部,intermediate位于中间,root CA位于底部,然后是一个回车符。

无论何时创建捆绑包,证书的末尾只能有一个回车符。
CA捆绑包与图中所示的相同,当然,没有实体证书。
故障排除
如果需要替换除数据库证书外的所有服务的过期证书,最简单的方法是上传与旧证书具有相同名称的新证书。如果这样做,则只需重新启动该服务,无需重新配置该服务。
如果执行pki csr ...,并且证书名称与当前密钥匹配,则会立即中断服务。 如果生产在线,并且您主动创建了新的CSR和密钥,请使用新名称。 在将新证书上传到服务器之前,可以重命名当前活动名称。
如果数据库证书已过期,您需要检查数据库Primary的数据库集群状态,并在所有节点上运行命令database cluster remove。 然后,您可以使用步骤3中的说明。生成数据库群集CSR并使用内置CA对它们进行签名。
相关信息