简介
本文档介绍如何替换思科遥测代理(CTB)管理器节点上的服务器身份证书。
先决条件
要求
Cisco 建议您了解以下主题:
使用的组件
本文档中使用的设备运行的是2.0.1版
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
配置
证书要求
思科遥测代理管理器使用的x509证书必须满足以下要求:
- 证书和私钥必须是匹配对
- 证书和私钥必须采用PEM编码
- 私钥不能受密码短语保护
确认证书和私钥匹配
以管理员用户身份登录到CTB管理器命令行界面(CLI)。
注意:此部分中提及的文件可能尚未存在于系统中。
sudo openssl req -in server.csr -pubkey -noout -outform pem | sha256sum
命令从证书签名请求文件输出公钥的SHA-256校验和。
sudo openssl pkey -in server_key.pem -pubout -outform pem | sha256sum命令输出私钥文件中公钥的SHA-256校验和。
sudo openssl x509 -in server_cert.pem -pubkey -noout -outform pem | sha256sum命令从发出的证书文件中输出公钥的SHA-256校验和。
证书和私钥输出必须匹配。如果未使用证书签名请求,则server_cert.pem文件不存在。
admin@ctb-manager:~$ sudo openssl req -in server.csr -pubkey -noout -outform pem | sha256sum 3e8e6b0d397ada1be7e89be21eb555c9527741460074385730d524c60e3ae315 - admin@ctb-manager:~$ admin@ctb-manager:~$ sudo openssl pkey -in server_key.pem -pubout -outform pem | sha256sum 3e8e6b0d397ada1be7e89be21eb555c9527741460074385730d524c60e3ae315 - admin@ctb-manager:~$ sudo openssl x509 -in server_cert.pem -pubkey -noout -outform pem | sha256sum 3e8e6b0d397ada1be7e89be21eb555c9527741460074385730d524c60e3ae315 -
确认私钥未受密码短语保护
以管理员用户身份登录到CTB管理器。运行ssh-keygen -yf server_key.pem命令。
如果私钥不需要密码,则不请求密码。
admin@ctb-manager:~$ ssh-keygen -yf server_key.pem ssh-rsa {removed for brevity} admin@ctb-manager:~$
确认证书和私钥是PEM编码的
以管理员用户身份登录到CTB管理器。
使用sudo cat server_cert.pem 命令查看server_cert.pem文件内容。根据您的证书文件名调整命令。
文件的第一行和第二行应分别为 -----BEGIN CERTIFICATE----- 和-----END CERTIFICATE-----。
admin@ctb-manager:~$ sudo cat server_cert.pem -----BEGIN CERTIFICATE----- {removed_for_brevity} -----END CERTIFICATE----- admin@ctb-manager:~$
使用sudo cat server_key.pem命令查看server_key.pem文件。根据您的私钥文件名调整命令。
文件的第一行和第二行应分别为 -----BEGIN PRIVATE KEY----- 和-----END PRIVATE KEY-----。
admin@ctb-manager:~$ sudo cat server_key.pem -----BEGIN PRIVATE KEY----- {removed_for_brevity} -----END PRIVATE KEY----- admin@ctb-manager:~$
自签证书
生成自签名证书
- 以安装过程中配置的用户身份通过SSH (Secure Shell)登录到CTB管理器,该用户通常为“admin”用户。
- 发出
sudo openssl req -x509 -newkey rsa:{key_len} -nodes -keyout server_key.pem -out server_cert.pem -sha256 -days 3650 -subj /CN={ctb_manager_ip} 命令。
- 使用您选择的私钥长度(例如2048、4096或8192)更改
rsa:{key_len}
- 使用CTB管理器节点的IP更改
{ctb_manager_ip}
admin@ctb-manager:~$ sudo openssl req -x509 -newkey rsa:4096 -nodes -keyout server_key.pem -out server_cert.pem -sha256 -days 3650 -subj /CN=10.209.35.152
[sudo] password for admin:
Generating a RSA private key
.....................................................................................++++
............................................................................++++
writing new private key to 'server_key.pem'
-----
admin@ctb-manager:~$
- 使用
cat server_cert.pem命令查看server_cert.pem文件,然后将内容复制到您的缓冲区中,以便可以将其粘贴到本地工作站所选的文本编辑器中。保存文件。您也可以将这些文件从目 /home/admin 录中SCP出来。
admin@ctb-manager:~$ cat server_cert.pem
-----BEGIN CERTIFICATE-----
{removed_for_brevity}
-----END CERTIFICATE-----
admin@ctb-manager:~$
- 使用
sudo cat server_key.pem命令查看server_key.pem文件,并将内容复制到您的缓冲区中,以便可以将其粘贴到本地工作站所选的文本编辑器中。保存文件。您也可以将此文件从目 /home/admin 录中SCP出来。
admin@ctb-manager:~$ sudo cat server_key.pem
-----BEGIN PRIVATE KEY-----
{removed_for_brevity}
-----END PRIVATE KEY-----
admin@ctb-manager:~$
上传自签名证书
证书颁发机构(CA)颁发的证书
生成证书颁发机构颁发的证书签名请求(CSR)
- 以安装过程中配置的用户身份通过SSH (Secure Shell)登录到CTB管理器,该用户通常为“admin”用户。
- 发出
openssl req -new -newkey rsa:{key_len} -nodes -addext "subjectAltName = DNS:{ctb_manager_dns_name},IP:{ctb_manager_ip}" -keyout server_key.pem -out server.csr命令。如果需要,可将最后两行的“额外”属性留空。
- 更改
{ctb_manager_dns_name} 为CTB管理器节点的DNS名称
- 使用CTB管理器节点的IP更改
{ctb_manager_ip}
- 使用您选择的私钥长度(例如2048、4096或8192)更改
{key_len} 。
admin@ctb-manager:~$ openssl req -new -newkey rsa:4096 -nodes -addext "subjectAltName = DNS:ctb-manager,IP:10.209.35.152" -keyout server_key.pem -out server.csr
Generating a RSA private key
......................++++
....................................++++
writing new private key to 'server_key.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:North Carolina
Locality Name (eg, city) []:RTP
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Cisco Systems Inc
Organizational Unit Name (eg, section) []:TAC
Common Name (e.g. server FQDN or YOUR name) []:ctb-manager
Email Address []:noreply@cisco.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
- 将CSR和密钥文件scp到本地计算机,并向CA提供CSR。CA颁发PEM格式的CSR不在本文档的讨论范围之内。
创建带链的证书
CA以PEM格式颁发服务器身份证书。必须创建包含CTB管理器节点的所有链证书和服务器身份证书的链文件。
在文本编辑器中,通过合并上一步中签名的证书并按照所示顺序将链中的所有证书(包括受信任CA)附加到PEM格式的单个文件中来创建文件。
— BEGIN CERTIFICATE — {CTB Manager Issued Certificate} — END CERTIFICATE — — BEGIN CERTIFICATE — {Issuing Certificate Authority Certificate} — END CERTIFICATE — — BEGIN CERTIFICATE — {Intermediate Certificate Authority Certificate} — END CERTIFICATE — — BEGIN CERTIFICATE — {Root Certificate Authority Certificate} — END CERTIFICATE —
确保此包含链文件的新证书文件没有前导空格或尾随空格、空行,并且顺序如上所示。
上传证书颁发机构颁发的证书
验证
登录到CTB Manager节点Web控制台并导航到Settings > TLS Certificate 以查看证书详细信息(如新到期日期),或使用浏览器查看证书详细信息(如序列号)。
CTB证书详细信息
验证CTB代理节点在CTB管理器节点Web UI中是否显示警报。
故障排除
如果证书不完整(例如缺少链证书),则CTB代理节点无法与管理器节点通信,并在代理节点列表的Status列中显示“Not Seen Since”。
Broker节点将继续复制和分发此状态的流量。
登录到CTB Manager节点CLI并发出sudo grep -ic begin /var/lib/titan/titanium_frontend/ssl/cert.pem 命令,查看cert.pem文件中的证书数量。
admin@ctb-manager:~$ sudo grep -ic begin /var/lib/titan/titanium_frontend/ssl/cert.pem [sudo] password for admin: 3 <-- Output admin@ctb-manager:~$
返回的输出值需要等于链中的CA设备数加上CTB管理器。
如果使用自签名证书,则应为1的输出。
如果PKI基础设施由也作为颁发CA的单个根CA组成,则预期输出2。
如果PKI基础设施包含一个根CA和一个发出CA,则预期输出3。
如果PKI基础设施包含一个根CA、一个从属CA和一个发出CA,则预期输出4。
将输出与在其他应用(如 Microsoft Windows Crypto Shell Extensions)中查看证书时列出的PKI进行比较。
PKI基础设施
在此图中,PKI基础设施包括一个根CA和发出CA。
在此场景中,命令的输出值预期为3。
如果输出未达到预期,请查看使用链创建证书部分中的步骤,以确定证书是否缺失。
在中查看证书时,Microsoft Windows Crypto Shell Extensions 如果本地计算机没有足够的信息来验证证书,则可能并非所有证书都会显示。
从CLI发出sudo ctb-mayday 命令,生成Mayday捆绑包,供TAC审阅。