本文档介绍如何在通过ASDM管理的Cisco ASA软件上请求、安装、信任和续订特定类型的证书。
本文档中的信息基于以下软件和硬件版本:
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
此文档处理的证书类型为:
安全套接字层(SSL)、传输层安全(TLS)和用于EAP身份验证协议的IKEv2 rfc7296要求SSL/TLS/IKEv2服务器为客户端提供服务器证书,以便客户端执行服务器身份验证。为此,建议使用受信任第三方 CA 将 SSL 证书颁发给 ASA。
思科不建议使用自签证书,因为用户可能会无意中将浏览器配置为信任来自欺诈服务器的证书。用户在连接到安全网关时可能会遇到安全警告,这可能会中断其工作流程。
安装受信任CA证书时,可以使用证书身份验证对不同类型的VPN连接进行身份验证。使用validation-usage trustpoint命令对其进行控制(Configuration > Device Management > Certificate Management > CA Certificates > Add -> More Options... > Advanced > Select Validation Usage options)。
validation-usage类型为:
ipsec-client:验证IPsec客户端连接。ssl-client:验证SSL客户端连接。ssl-server:验证SSL服务器证书。
Navigate to:
Configuration > Device Management > Certificate Management > CA Certificates.
a) Select a wanted trustpoint and click Edit.
b) Navigate to Advanced and uncheck all Validation Usage options.
trustpoint public-root-ca no validation-usage

默认情况下,受信任CA证书可用于对连接到任何隧道组的VPN IPSEC对等体或远程访问VPN用户进行身份验证。需要设计适当的授权。
使用证书和隧道组映射以确保仅授权证书用于特定隧道组。设置指向无访问隧道组的默认隧道组映射规则,以限制未经授权的访问。
证书身份验证仅允许用于:
由于tunnel-group-map default-group no_access命令,默认情况下将具有其他证书的用户分配给no_access tunnel-group。由于tunnel-group-map enable rules命令,证书映射规则的优先级高于group-url。了解group-url无助于绕过证书映射规则。
Navigate to:
Configuration > Remote Access VPN > Network (Client) Access > Group Policies > Add > General > More Options
a) Uncheck Inherit next to Simultaneous Logins and set the value 0.
b) Uncheck Inherit next to Banner and set a wanted massage, for example NO ACCESS GROUP POLICY.
group-policy no_access_gp internal
group-policy no_access_gp attributes
banner value NO ACCESS GROUP POLICY
vpn-simultaneous-logins 0
同时登录设置为0
2.配置用户的隧道组和阻止VPN访问的隧道组。
Navigate to:
Configuration > Remote Access VPN > Network (Client) Access > Secure Client Connection Profiles. Click Add and configure:
a) Authentication method as Certificate.
b) Group Policy - for the no_access tunnel group use no_access_gp where simultaneous logins is set to 0.
tunnel-group mgmt-tunnel type remote-access tunnel-group mgmt-tunnel general-attributes address-pool vpn_pool default-group-policy mgmt-tunnel tunnel-group mgmt-tunnel webvpn-attributes authentication certificate ! tunnel-group users_access type remote-access tunnel-group users_access general-attributes default-group-policy user_access_gp address-pool vpn_pool tunnel-group users_access webvpn-attributes authentication certificate ! tunnel-group no_access type remote-access tunnel-group no_access general-attributes default-group-policy no_access_gp address-pool vpn_pool tunnel-group no_access webvpn-attributes authentication certificate
无访问隧道组
3.为用户创建证书映射,并使用证书映射进行隧道组映射:
Navigate to: Configuration > Remote Access VPN > Advanced > Certificate to Secure Client and Clientless SSL VPN Connection Profile Maps.
a) Click Add to configure Certificate to Connection Profile Maps.
b) Select New and configure a certificate group map name, for example mgmt_tunnel_map or users_access_map.
c) Select a corresponding connection profile/tunnel group from the drop-down menu at Mapped to Connection Profile.
d) Click Add to configure Mapping Criteria.
e) Select: Field: Subject, Component: Organizational Unit (OU), Operator: Equals, Value: machines or users.
d) Select: Field: Issuer, Component: Common Name (CN), Operator: Equals, Value: example.com.
crypto ca certificate map mgmt_tunnel_map 10
issuer-name attr cn eq example.com
subject-name attr ou eq machines
crypto ca certificate map users_access_map 10
issuer-name attr cn eq example.com
subject-name attr ou eq users
!
webvpn
(...)
certificate-group-map mgmt_tunnel_map 10 mgmt-tunnel
certificate-group-map users_access_map 10 users_access
证书到安全客户端连接配置文件映射
4.启用隧道组映射并配置默认隧道组,以便在用户证书与任何其他证书映射不匹配时拒绝访问。
Navigate to: Configuration > Remote Access VPN > Network (Client) Access > Advanced > IPsec > Certificate to Connection Profile Maps > Policy.
a) Check Use the configure rules to match a certificate to a Connection Profile.
b) Check Default to Connection Profile and select from the drop-down menu the no-access connection profile/tunnel group.
tunnel-group-map enable rules tunnel-group-map default-group no_access
启用证书映射和默认连接配置文件有关更详细的配置说明,请参阅Cisco文档:
可以通过两种方式从证书颁发机构(CA)请求证书并安装在ASA上:
在需要身份证书的设备上创建CSR,使用设备上创建的密钥对。
CSR包含:
CSR被传递到证书颁发机构(CA),以便在PKCS#10表单中签名。
签名证书以PEM形式从CA返回。








| 属性 | 描述 |
|---|---|
| CN | 用于访问防火墙的名称(通常为完全限定域名,例如vpn.example.com)。 |
| OU | 组织内部门的名称。 |
| O | 您的组织/公司的合法注册名称。 |
| C | 国家/地区代码(2个不带标点的字母代码)。 |
| ST | 您的组织所在的州。 |
| L | 组织所在的城市。 |
| 企业协议 (EA) | 电子邮件地址 |





安装步骤假设CA对CSR签名,并提供PEM编码(.pem,.cer, .crt)身份证书和CA证书捆绑包。






必须将ASA配置为使用新的身份证书,以便在指定的接口上终止的WebVPN会话。


现在新的身份证书正在使用。
PKCS12文件(.p12或.pfx格式)包含身份证书、密钥对和CA证书。 它由CA创建(如果存在通配符证书),或者从其他设备导出。它是二进制文件,不能通过文本编辑器查看。




必须将ASA配置为使用新的身份证书,以便在指定的接口上终止的WebVPN会话。


CSR注册证书的证书续订要求您创建和注册新的信任点。它必须拥有不同的名称(例如,具有注册年后缀的旧名称)。 它可以使用与旧证书相同的参数和密钥对,也可以使用不同的参数和密钥对。







| 属性 |
描述 |
|---|---|
| CN |
用于访问防火墙的名称(通常为完全限定域名,例如vpn.example.com)。 |
| OU |
组织内部门的名称。 |
| O |
您的组织/公司的合法注册名称。 |
| C |
国家/地区代码(不带标点的 2 位字母代码) |
| ST |
您的组织所在的州。 |
| L |
组织所在的城市。 |
| 企业协议 (EA) |
电子邮件地址 |





安装步骤假设CA对CSR签名,并提供PEM编码(.pem、.cer、.crt)的新身份证书和CA证书捆绑包。
签名身份证书的CA证书可以安装在为身份证书创建的信任点中。如果身份证书由中间CA签名,则此CA证书可以安装在身份证书信任点中。层次结构中的上游CA证书可以安装在单独的CA信任点中。



在本示例中,新证书使用与旧证书相同的CA证书进行签名。同一个CA证书与两个信任点关联。




必须将ASA配置为使用新的身份证书,以便在指定的接口上终止的WebVPN会话。


PKCS12注册证书的证书续订需要您创建和注册新的信任点。它必须拥有不同的名称(例如,具有注册年后缀的旧名称)。
PKCS12文件(.p12或.pfx格式)包含身份证书、密钥对和CA证书。 例如,它是由CA创建(对于通配符证书),或者从其他设备导出。它是二进制文件,不能通过文本编辑器查看。
身份证书、CA证书和密钥对必须捆绑到单个PKCS12文件中。




必须将ASA配置为使用新的身份证书,以便在指定接口上终止的WebVPN会话使用新的身份证书。


使用以下步骤验证第三方供应商证书的安装是否成功以及是否用于SSL VPN连接。

如果SSL证书安装失败,则会在CLI上收集此debug命令以收集诊断信息。
问:什么是PKCS12?
A.在加密中,PKCS12定义了一种存档文件格式,创建该格式是为了将许多加密对象存储为一个文件。它通常用于将私钥与其X.509证书捆绑在一起,或者用于捆绑信任链的所有成员。
问:什么是CSR?
A.在公钥基础设施(PKI)系统中,证书签名请求(也称为CSR或证书请求)是从申请人发送到公钥基础结构的注册机构以申请数字身份证书的消息。它通常包含可为其颁发证书的公钥、用于标识已签名证书的信息(例如主题中的域名)以及完整性保护(例如数字签名)。
问:PKCS12的密码在哪里?
A.将证书和密钥对导出到PKCS12文件时,在export命令中给出口令。要导入PKCS12文件,密码必须由CA服务器的所有者或从其他设备导出PKCS12的人员提供。
根与身份有什么区别?
A.在加密和计算机安全中,根证书是标识根证书颁发机构(CA)的公钥证书。 根证书是自签名的(如果证书是由交叉签名的根颁发的,则证书可能具有多个信任路径),并构成基于X.509的公钥基础设施(PKI)的基础。公钥证书,也称为数字证书或身份证书,是一种用于证明公钥所有权的电子文档。该证书包括有关密钥的信息、有关其所有者(称为主题)的身份的信息以及已验证证书内容的实体(称为颁发者)的数字签名。 如果签名有效,并且检查证书的软件信任颁发者,则它可以使用该密钥与证书使用者进行安全通信。
问:我安装了证书,为什么它不工作?
A.这可能有许多原因,例如:
1.虽然配置了证书和信任点,但是它们尚未绑定到使用该证书和信任点的进程。例如,使用的信任点不会绑定到终止Cisco Secure Access AnyConnect VPN客户端连接的外部接口。
2.已安装PKCS12文件,但由于PKCS12文件中缺少中间CA证书而出现错误。将中间CA证书作为受信任的,但没有根CA证书作为受信任的,并且无法验证整个证书链并将服务器身份证书报告为不受信任的。
3.使用不正确的属性填充的证书可能会导致安装失败或客户端错误。例如,某些属性使用错误的格式进行编码。另一个原因是身份证书缺少主题备用名称(SAN),或者用于访问服务器的域名没有作为SAN出现。
问:安装新证书是否需要维护窗口或导致停机?
A.安装新证书(身份或CA)不会带来干扰,不会导致停机或需要维护窗口。要启用新证书以用于现有服务,需要更改请求/维护窗口。
问:添加或更改证书能否断开连接的用户?
答:不,当前连接的用户保持连接。证书用于连接建立。用户重新连接后,将使用新证书。
问:如何使用通配符创建CSR?或主题备用名称(SAN)?
A.当前,ASA/FTD无法使用通配符创建CSR;但是,此过程可以通过OpenSSL完成。要生成CSR和ID密钥,可以运行以下命令:
openssl genrsa -out id.key 2048
openssl req -out id.csr -key id.key -new
使用完全限定域名(FQDN)属性配置信任点时,由ASA/FTD创建的CSR包含具有该值的SAN。当CA签署CSR时,可以添加更多SAN属性,也可以使用OpenSSL创建CSR
问:证书更换是否立即生效?
A.新服务器身份证书仅用于新连接。新证书可在更改后立即使用,但用于新连接。
问: 如何检查安装是否有效?
A.用于验证的CLI命令:show crypto ca cert <trustpointname>
问:如何从身份证书、CA证书和私钥生成PKCS12?
A. PKCS12可以通过OpenSSL使用以下命令创建:
openssl pkcs12 -export -out p12.pfx -inkey id.key -in id.crt -certfile ca.crt
问:如何导出证书以将其安装在新的ASA中?
A.
使用CLI:使用下列命令:crypto ca export <trustpointname> pkcs12 <password>
使用ASDM:


问:如果使用ECDSA密钥,则SSL证书生成过程是否不同?
A.配置的唯一区别是密钥对生成步骤,在该步骤中可生成ECDSA密钥对,而不是RSA密钥对。其余步骤保持不变。
问:是否始终需要生成新的密钥对?
A.密钥对生成步骤是可选的。可以使用现有密钥对,或者如果随证书导入PKCS12密钥对。有关各自的注册/重新注册类型,请参阅“选择密钥对名称”部分。
问:为新的身份证书生成新的密钥对是否安全?
A.只要使用新的密钥对名称,此过程就是安全的。在这种情况下,旧密钥对不会更改。
问:在更换防火墙时(如RMA),是否需要再次生成密钥?
A.新防火墙的设计没有在旧防火墙上提供密钥对。
运行配置的备份不包含密钥对。使用ASDM完成的完全备份可以包含密钥对。
可以在身份证书发生故障之前从带ASDM或CLI的ASA中将其导出。在故障转移对的情况下,使用write standby命令将证书和密钥对同步到备用设备。如果替换故障切换对中的一个节点,则足以配置基本故障切换并将配置推送到新设备。
如果设备丢失了密钥对,并且没有备份,则必须使用新设备上存在的密钥对对新证书进行签名。
| 版本 | 发布日期 | 备注 |
|---|---|---|
5.0 |
29-May-2026
|
由于结构/语法而更新了间距、标题,并重写了几个句子。 |
4.0 |
15-Nov-2024
|
已更新机器翻译和格式。 |
3.0 |
25-Jul-2024
|
更新的替换文本、样式问题、表达式和标点/大写。 |
2.0 |
22-Apr-2023
|
更新的参与者列表。 |
1.0 |
19-Apr-2023
|
初始版本 |