简介
本文档介绍如何创建可由CloudCenter使用多个URL的自签名证书。
先决条件
要求
Cisco 建议您了解以下主题:
使用的组件
本文档中的信息基于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:
- 找到以<Connector port="10443" maxHttpHeaderSize="8192"开头的部分
- 将SSLCertificateFile更改为指向ccm.com.crt
- 将SSLCertificateKeyFile更改为指向ccm.com.key
- 将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)或浏览器的说明将这些证书安装为受信任颁发机构和中间颁发机构。