簡介
本文說明如何更換思科遙測代理(CTB)管理器節點上的伺服器身份證書。
必要條件
需求
思科建議您瞭解以下主題:
採用元件
用於本文檔的裝置運行的是2.0.1版
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
設定
證書要求
思科遙測代理管理器使用的x509證書必須滿足以下要求:
- 證書和私鑰必須是匹配對
- 證書和私鑰必須採用PEM編碼
- 私鑰不能受密碼保護
確認證書和私鑰是否匹配
以管理員使用者身份登入到CTB管理器。
其 sudo openssl req -in server.csr -pubkey -noout -outform pem | sha256sum
命令從證書簽名請求檔案中輸出公鑰的SHA-256校驗和。
其 sudo openssl pkey -in server.key -pubout -outform pem | sha256sum
命令從私鑰檔案中輸出公鑰的SHA-256校驗和。
其 sudo openssl x509 -in server.crt -pubkey -noout -outform pem | sha256sum
命令從頒發的證書檔案中輸出公鑰的SHA-256校驗和。
證書和私鑰輸出必須匹配。如果未使用證書簽名請求,則server.crt檔案不存在。
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 -pubout -outform pem | sha256sum
3e8e6b0d397ada1be7e89be21eb555c9527741460074385730d524c60e3ae315 -
admin@ctb-manager:~$ sudo openssl x509 -in server.crt -pubkey -noout -outform pem | sha256sum
3e8e6b0d397ada1be7e89be21eb555c9527741460074385730d524c60e3ae315 -
確認私鑰未受密碼保護
以管理員使用者身份登入到CTB管理器。運行 ssh-keygen -yf server.key
指令。
如果私鑰不需要密碼,則不會請求密碼。
admin@ctb-manager:~$ ssh-keygen -yf server.key
ssh-rsa {removed for brevity}
admin@ctb-manager:~$
確認證書和私鑰是PEM編碼的
以管理員使用者身份登入到CTB管理器。
檢視server.crt檔案內容 sudo cat server.crt
指令。將命令調整為證書檔名。
admin@ctb-manager:~$ sudo cat server.crt
-----BEGIN CERTIFICATE-----
{removed_for_brevity}
-----END CERTIFICATE-----
admin@ctb-manager:~$
使用CLI檢視server.key檔案 sudo cat server.key
指令。將命令調整為您的私鑰檔名。
admin@ctb-manager:~$ sudo cat server.key
-----BEGIN PRIVATE KEY-----
{removed_for_brevity}
-----END PRIVATE KEY-----
admin@ctb-manager:~$
自簽名證書
生成自簽名證書
- 以安裝過程中配置的使用者身份通過SSH(安全外殼)登入到CTB管理器,通常為「管理員」使用者。
- 發出
sudo openssl req -x509 -newkey rsa:{key_len} -nodes -keyout key.pem -out cert.pem -sha256 -days 3650 -subj /CN={ctb_manager_ip}
指令。
- 使用GUI檢視cert.pem檔案
cat cert.pem
命令,並將內容複製到緩衝區中,以便將其貼上到本地工作站中所需的文本編輯器中。儲存檔案。您還可以將這些檔案從 /home/admin
目錄。
admin@ctb-manager:~$ cat cert.pem
-----BEGIN CERTIFICATE-----
{removed_for_brevity}
-----END CERTIFICATE-----
admin@ctb-manager:~$
- 使用GUI檢視key.pem檔案
sudo cat key.pem
命令,並將內容複製到緩衝區中,以便將其貼上到本地工作站中所需的文本編輯器中。儲存檔案。您也可以將此檔案從 /home/admin
目錄。
admin@ctb-manager:~$ sudo cat key.pem
-----BEGIN PRIVATE KEY-----
{removed_for_brevity}
-----END PRIVATE KEY-----
admin@ctb-manager:~$
上傳自簽名證書
證書頒發機構(CA)頒發的證書
生成證書頒發機構頒發的證書簽名請求(CSR)
- 以安裝過程中配置的使用者身份通過SSH(安全外殼)登入到CTB管理器,通常為「管理員」使用者。
- 發出
openssl req -new -newkey rsa:{key_len} -nodes -addext "subjectAltName = DNS:{ctb_manager_dns_name},IP:{ctb_manager_ip}" -keyout server.key -out server.csr
指令。如果需要,可以將最後兩行上的「extra」屬性留空。
- 更改
{ctb_manager_dns_name}
CTB管理器節點的DNS名稱
- 更改
{ctb_manager_ip}
使用CTB管理器節點的IP
- 更改
{key_len}
使用您選擇的私鑰長度,例如2048、4096或8192。
admin@ctb-manager:~$ openssl req -new -newkey rsa:4096 -nodes -addext "subjectAltName = DNS:ctb-manager,IP:10.209.35.152" -keyout server.key -out server.csr
Generating a RSA private key
......................++++
....................................++++
writing new private key to 'server.key'
-----
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管理器節點Web控制檯並導航到 Settings > TLS Certificate
檢視證書詳細資訊(如新的到期日期),或使用瀏覽器檢視證書詳細資訊(如序列號)。
CTB證書詳細資訊
驗證CTB代理節點在CTB管理器節點Web UI中是否顯示警報。
疑難排解
如果證書不完整(如缺少鏈結證書),則CTB代理節點無法與管理器節點通訊,並在代理節點清單的Status列中顯示「Not Seen Since」。
Broker節點將繼續複製和分發處於此狀態的流量。
登入到CTB管理器節點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基礎設施包括根CA和頒發CA。
在此案例中,命令的輸出值預期為3。
如果輸出未達到預期,請檢視使用鏈條建立證書一節中的步驟,確定證書是否丟失。
在中檢視證書時 Microsoft Windows Crypto Shell Extensions
如果本地電腦沒有足夠的資訊來驗證證書,則可能並非所有證書都顯示。
發出 sudo ctb-mayday
命令以生成一個Mayday捆綁包,供TAC稽核。