目录

简介

先决条件

要求

使用的组件

问题

解决方案

简介

本文档介绍如何创建可由CloudCenter使用多个URL的自签名证书。

先决条件

要求

Cisco 建议您了解以下主题：

- 证书

- Linux

使用的组件

本文档中的信息基于CentOS7。

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

问题

CloudCenter标准证书，或可使用Cisco Call Manager(CCM)配置向导创建的证书，没有Subject Alternative Name(SAN)，某些浏览器（如Google Chrome）将其视为错误并警告您。这可以被覆盖，但如果没有SAN，证书只能从一个特定URL有效。

例如，如果您的证书对IP地址10.11.12.13有效，如果域名系统(DNS)名称为www.opencart.com，则会收到证书错误，因为该URL不是证书的目的(即使www.opencart.com在您的主机文件中列为属于的URL，也是正确的10.11.12.13)。 如果CloudCenter的子租户正在使用单点登录(SSO),则这可能会发生，因为每个SSO服务器都有自己的URL。

解决方案

解决此问题的最简单方法是创建一个新的自签名证书，该证书包含SAN，其中列出了将您定向到同一IP地址的任何URL。本指南旨在尝试将最佳实践应用到此流程。

步骤1.导航到根目录，并创建新文件夹来存放证书：

sudo -s

cd /root

mkdir ca

步骤2.导航到新文件夹并创建子文件夹以组织证书、私钥和日志。

cd ca

mkdir certs crl newcerts private

chmod 700 private

touch index.txt

echo 1000 > serial

步骤3.将CAopenssl.conf的内容复制到/root/ca/openssl.cnf

注意：此文件包含证书颁发机构(CA)的配置选项和可能适用于CloudCenter的默认选项。

步骤4.为CA生成私钥和证书。

openssl genrsa -aes256 -out private/ca.key.pem 4096

chmod 400 private/ca.key.pem

openssl req -config openssl.cnf -key private/ca.key.pem -new -x509 -days 7300 -sha256 -extensions v3_ca -out certs/ca.cert.pem

chmod 444 certs/ca.cert.pem

步骤5. CA是验证任何证书是否有效的最终方法，此证书不得被未授权的个人访问，也不得暴露在互联网上。由于此限制，您必须创建签署结束证书的中间CA，这会创建一个中断，如果中间机构证书受到危害，则可撤销该证书并颁发新证书。

步骤6.为中间CA创建新子目录。

mkdir /root/ca/intermediate

cd /root/ca/intermediate/

mkdir certs crl csr newcerts private

chmod 700 private

touch index.txt

echo 1000 > serial

echo 1000 > /root/ca/intermediate/crlnumber

步骤7.将Intermediateopenssl.conf的内容复制到/root/ca/intermediate/openssl.cnf。

注意：此文件包含CA的几乎相同的配置选项，而不是进行一些小调整，使其特定于中间设备。

步骤8.生成中间密钥和证书。

cd /root/ca

openssl genrsa -aes256 -out intermediate/private/intermediate.key.pem 4096

chmod 400 intermediate/private/intermediate.key.pem

openssl req -config intermediate/openssl.cnf -new -sha256 -key intermediate/private/intermediate.key.pem -out intermediate/csr/intermediate.csr.pem

步骤9.使用CA证书签署中间证书，这会构建一个信任链，浏览器使用该链来验证证书的真实性。

openssl ca -config openssl.cnf -extensions v3_intermediate_ca -days 3650 -notext -md sha256 -in intermediate/csr/intermediate.csr.pem -out intermediate/certs/intermediate.cert.pem

chmod 444 intermediate/certs/intermediate.cert.pem

步骤10.创建CA链，因为您不希望CA在Internet上，所以可以创建CA链，浏览器使用该链验证CA的真实性，直到CA。

cat intermediate/certs/intermediate.cert.pem certs/ca.cert.pem > intermediate/certs/ca-chain.cert.pem

chmod 444 intermediate/certs/ca-chain.cert.pem

步骤11.为CCM创建新密钥和证书。

openssl genrsa -out intermediate/private/ccm.com.key.pem 2048

openssl req -new -sha256 -key intermediate/private/ccm.com.key.pem -subj "/C=US/ST=NC/O=Cisco/CN=ccm.com" -reqexts SAN -config <(cat intermediate/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:ccm.com,DNS:www.ccm.com,IP:10.11.12.13")) -out intermediate/csr/ccm.com.csr

步骤12.此命令中包含所有必填字段，必须手动编辑。

- /C=US表示国家/地区（2个字符限制）

- /ST=NC指“状态”，可能包含空格

- /O=思科指组织

- /CN=ccm.com指通用名称，这应是用于访问CCM的主URL。

- SAN\nsubjectAltName=是替代名称，公用名称应该在此列表中，并且您拥有的SAN数量没有限制。

步骤13.使用中间证书签署最终证书。

openssl ca -config intermediate/openssl.cnf -extensions server_cert -days 375 -notext -md sha256 -in intermediate/csr/ccm.com.csr -out intermediate/certs/ccm.com.cert.pem

步骤14.检验证书是否已正确签名。

openssl verify -CAfile intermediate/certs/ca-chain.cert.pem intermediate/certs/ccm.com.cert.pem

步骤15.它可以返回OK或Fail。

步骤16.将新证书、其密钥和CA链复制到Catalina文件夹。

cd /root/ca/intermediate/certs

cp ccm.com.cert.pem /usr/local/tomcat/conf/ssl/ccm.com.crt

cp ca-chain.cert.pem /usr/local/tomcat/conf/ssl/ca-chain.crt

cd ../private

cp ccm.com.key.pem /usr/local/tomcat/conf/ssl/ccm.com.key

步骤17.授予客户端用户所有权并正确设置权限。

chown cliqruser:cliqruser ccm.com.crt

chown cliqruser:cliqruser ccm.com.key

chown cliqruser:cliqruser ca-chain.crt

chmod 644 ccm.com.crt

chmod 644 ccm.com.key

chmod 644 ca-chain.crt

步骤18.在进行任何更改之前备份server.xml文件。

cd ..

cp server.xml server.xml.bak

步骤19.编辑server.xml:

1. 找到以<Connector port="10443" maxHttpHeaderSize="8192"开头的部分

2. 将SSLCertificateFile更改为指向ccm.com.crt

3. 将SSLCertificateKeyFile更改为指向ccm.com.key

4. 将SSLCACertificateFile更改为指向ca-chain.crt

步骤20.重新启动Tomcat。

service tomcat stop

service tomcat start

步骤21. CCM现在使用新证书，该证书对步骤13中指定的所有DNS名称和IP地址有效。

步骤22.由于CA是在指南创建时创建的，因此您的浏览器在默认情况下将无法识别其有效，您必须手动导入证书。

步骤23.使用任何有效的URL导航到CCM，然后按Ctrl+Shift+i，这将打开开发人员工具。

步骤24.选择“查看证书”，如图所示。

步骤25.选择Details，如图所示。

步骤26.选择“复制到文件”，如图所示。

步骤27.如果您收到有关不受信任的CA的错误，请导航至Certification Path以查看中间证书和根证书。您可以点击它们并查看其证书，还可以将其复制到图中所示的文件。

步骤28.下载证书后，请按照操作系统(OS)或浏览器的说明将这些证书安装为受信任颁发机构和中间颁发机构。