简介
本文档介绍如何对由FMC管理的Firepower威胁防御设备上的证书颁发机构(CA)导入错误进行故障排除和修复。
先决条件
要求
Cisco 建议您了解以下主题:
- 公用密钥基础结构 (PKI)
- Firepower Management Center (FMC)
- Firepower Threat Defense (FTD)
- OpenSSL
使用的组件
本文档中的信息基于以下软件版本:
- MacOS x 10.14.6
- FMC 6.4
- OpenSSL
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
背景信息
注意:在FTD设备上,在生成证书签名请求(CSR)之前需要CA证书。
- 如果CSR在外部服务器(例如Windows Server或OpenSSL)中生成,则手动注册方法将失败,因为FTD不支持手动密钥注册。必须使用其他方法,例如PKCS12。
问题
在此特定场景中,FMC在CA证书状态(如图所示)中显示一个红十字,表示证书注册无法安装CA证书。如果证书未正确打包,或PKCS12文件不包含正确的颁发者证书(如图所示),则通常会出现此错误。
注意:在较新的FMC版本中,已解决此问题以匹配ASA行为,该行为会创建另一个信任点,其根CA包含在.pfx证书的信任链中。
解决方案
步骤1:找到.pfx证书
获取在FMC GUI中注册的pfx证书保存,然后在Mac终端(CLI)中查找该文件。
ls
第二步:从.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
缓存导出
从pfx文件中提取私钥(需要步骤2中的相同口令)。
openssl pkcs12 -in cert.pfx -nocerts -out key.pem
密钥导出
现在存在四个文件:cert.pfx(原始pfx捆绑包)、certs.pem(CA证书)、id.pem(客户端证书)和key.pem(私钥)。
导出后的ls
第三步:在文本编辑器中验证证书
使用文本编辑器(例如nano certs.pem)验证证书。
对于此特定场景,certs.pem仅包含子CA(颁发CA)。
从步骤5开始,本文描述文件certs.pem包含2个证书(一个根CA和一个子CA)的方案的过程。
证书视图
第四步:验证记事本中的私钥
使用文本编辑器(例如nano certs.pem)验证key.pem文件的内容。
第五步:拆分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文件的颁发者(如前面的图像所示)匹配的cacert文件是随后用于创建PFX证书的子CA。
删除没有匹配主题的cacert文件。在本例中,该证书是cacert-aa.pem。
rm -f cacert-aa.pem
第六步:合并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-creation
步骤 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信息,您可以选择图标并确认已成功导入: