簡介
本文描述如何對由FMC管理的Firepower威脅防禦裝置上的證書頒發機構(CA)匯入錯誤進行故障排除和修復。
必要條件
需求
思科建議您瞭解以下主題:
- 公開金鑰基礎架構 (PKI)
- Firepower Management Center (FMC)
- Firepower Threat Defense (FTD)
- OpenSSL
採用元件
本檔案中的資訊是根據以下軟體版本:
- MacOS x 10.14.6
- FMC 6.4
- OpenSSL
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
背景資訊
註:在FTD裝置上,需要先使用CA憑證,才能產生憑證簽署請求(CSR)。
- 如果在外部伺服器(例如Windows Server或OpenSSL)中產生CSR,則手動註冊方法會失敗,因為FTD不支援手動金鑰註冊。必須使用其他方法,例如PKCS12。
問題
在此特定案例中,FMC在CA憑證狀態中會顯示一個紅十字(如圖所示),表示憑證註冊無法安裝CA憑證。當證書沒有正確打包或PKCS12檔案不包含正確的頒發者證書時,通常會出現此錯誤,如圖所示。
注意:在較新的FMC版本中,已解決此問題以匹配ASA行為,該行為會建立根CA包含在.pfx證書的信任鏈中的其他信任點。
解決方案
步驟 1.找到.pfx證書
獲取在FMC GUI中註冊的pfx證書儲存,然後在Mac終端(CLI)中查詢該檔案。
ls
步驟 2.從.pfx檔案中提取證書和金鑰
從pfx檔案中提取客戶端證書(非CA證書)(需要用於生成.pfx檔案的密碼)。
openssl pkcs12 -in cert.pfx -clcerts -nokeys -out id.pem
身份匯出
擷取CA憑證(不是使用者端憑證)。
openssl pkcs12 -in cert.pfx -cacerts -nokeys -out certs.pem
cacerts export
從pfx檔案中提取私鑰(需要步驟2中的相同密碼)。
openssl pkcs12 -in cert.pfx -nocerts -out key.pem
金鑰匯出
現在存在四個檔案:cert.pfx(原始pfx捆綁包)、certs.pem(CA證書)、id.pem(客戶端證書)和key.pem(私鑰)。
匯出後的ls
步驟 3.在文字編輯器中驗證憑證
使用文字編輯器驗證憑證(例如nano certs.pem)。
對於此特定案例,certs.pem僅包含子CA(核發CA)。
從步驟5開始,本文介紹檔案certs.pem包含2個證書(一個根CA和一個子CA)的情境中的程式。
證書檢視
步驟 4.驗證記事本中的私鑰
使用文本編輯器(例如nano certs.pem)驗證key.pem檔案的內容。
步驟 5.拆分CA證書
如果certs.pem檔案有2個憑證(1個根CA和1個子CA),則需要從信任鏈中移除根CA,才能在FMC中匯入pfx格式的憑證,只需在鏈中保留子CA即可進行驗證。
將certs.pem拆分為多個檔案,下一個命令將證書重新命名為cacert-XX。
split -p "-----BEGIN CERTIFICATE-----" certs.pem cacert-
拆分拆分後的ls
使用以下命令將.pem副檔名新增到這些新檔案。
for i in cacert-*;do mv "$i" "$i.pem";done
重新命名指令碼
檢查兩個新檔案,並使用所述的命令確定哪個檔案包含根CA,哪個檔案包含子CA。
首先,找到id.pem檔案(即身份證書)的頒發者。
openssl x509 -in id.pem -issuer -noout
頒發者檢視
現在,找到兩個cacert-files(CA證書)的主題。
openssl x509 -in cacert-aa.pem -subject -noout
openssl x509 -in cacert-ab.pem -subject -noout
主題檢查
將Subject與id.pem檔案的Issuer匹配的cacert檔案(如前面的影象所示)是以後用於建立PFX證書的子CA。
刪除沒有匹配主題的cacert檔案。在本例中,該證書是cacert-aa.pem。
rm -f cacert-aa.pem
步驟 6.合併PKCS12檔案中的證書
在新的pfx檔案中合併子CA證書(在本例中,名稱為cacert-ab.pem)以及ID證書(id.pem)和私鑰(key.pem)。您必須使用密碼保護此檔案。如果需要,請更改cacert-ab.pem檔名以匹配您的檔案。
openssl pkcs12 -export -in id.pem -certfile cacert-ab.pem -inkey key.pem -out new-cert.pfx
pfx建立
步驟 7.在FMC中匯入PKCS12檔案
在FMC中,導覽至Device > Certificates,並將憑證匯入所需的防火牆,如下圖所示。
證書註冊
插入新證書的名稱。
註冊
新增憑證,然後等待註冊程式將新憑證部署到FTD。
new-cert
新證書必須可見,CA欄位中不能有紅十字標籤。
驗證
使用本節內容,確認您的組態是否正常運作。
在Windows中,您可能會遇到這樣的問題:即使.pfx檔案只包含ID證書,但作業系統仍顯示證書的整個鏈(如果它的儲存中有subCA, CA鏈)。
若要檢查.pfx檔案中的憑證清單,可以使用certutil或openssl等工具。
certutil -dump cert.pfx
certutil是一個命令列實用程式,它提供.pfx檔案中的證書清單。您必須看到包含ID、SubCA、CA(如果有)的整個憑證鏈。
或者,您也可以使用openssl命令,如下面的命令所示。
openssl pkcs12 -info -in cert.pfx
若要驗證憑證狀態以及CA和ID資訊,您可以選擇圖示並確認其已成功匯入: