目錄

簡介

必要條件

需求

採用元件

背景資訊

問題

解決方案

步驟 1.找到.pfx證書

步驟 2.從.pfx檔案中提取證書和金鑰

步驟 3.在文字編輯器中驗證憑證

步驟 4.驗證記事本中的私鑰

步驟 5.拆分CA證書

步驟 6.合併PKCS12檔案中的證書

步驟 7.在FMC中匯入PKCS12檔案

驗證

簡介

本文描述如何對由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資訊，您可以選擇圖示並確認其已成功匯入：