简介
本文档介绍如何对由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证书,并显示消息“无法配置CA证书”。 如果未正确打包证书,或者PKCS12文件不包含正确的颁发者证书(如图所示),通常会出现此错误。
注意:在较新的FMC版本中,解决此问题的目的是与ASA行为相匹配,ASA行为使用包含在.pfx证书信任链中的根CA创建其他信任点。
解决方案
步骤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-
拆分后拆分
使用如下所述的命令,为这些新文件添加.pem扩展名。
for i in cacert-*;do mv "$i" "$i.pem";done
重命名脚本
查看这两个新文件,并使用所述命令确定哪个文件包含根CA,哪个文件包含子CA。
首先,查找id.pem文件(即身份证书)的颁发者。
openssl x509 -in id.pem -issuer -noout
颁发者视图
现在,查找两个cacert-文件(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创建
步骤 7.在FMC中导入PKCS12文件
在FMC中,导航到设备>证书,并将证书导入到所需的防火墙,如图所示。
证书注册
插入新证书的名称。
注册
添加新证书,并等待注册过程将新证书部署到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信息,您可以选择图标并确认其已成功导入: