证书撤销
数字证书有到期日期,但是,在到期之前,证书可能由于许多原因而不再有效。您可以通过引用证书颁发机构 (CA) 证书撤销列表 (CRL) 在本地管理证书撤销和验证。
了解在线证书状态协议和证书撤销列表
OCSP 用于检查 X509 证书的撤销状态。OCSP 实时提供证书的撤销状态,在时间敏感的情况下(如银行交易和股票交易)非常有用。
通过向位于 SRX 系列设备外部的 OCSP 服务器发送请求,检查证书的撤销状态。根据服务器的响应,允许或拒绝 VPN 连接。OCSP 响应不会缓存在 SRX 系列设备上。
OCSP 服务器可以是颁发证书的 证书颁发机构 (CA), 也可以是指定的授权响应者。OCSP 服务器的位置可以手动配置,也可以从正在验证的证书中提取。请求首先发送到在 CA 配置文件中手动配置的 OCSP 服务器位置,这些位置将 ocsp url
语句位于 [edit security pki ca-profile profile-name revocation-check
] 层次结构级别;每个 CA 配置文件最多可以配置两个位置。如果无法访问第一个配置的 OCSP 服务器,则请求将发送到第二个 OCSP 服务器。如果无法访问第二个 OCSP 服务器,则请求将发送到证书的“授权机构”扩展字段中的位置。use-ocsp
此外,还必须配置选项,因为证书撤销列表 (CRL) 是默认检查方法。
SRX 系列设备仅接受 CA 或授权响应方签名的 OCSP 响应。收到的响应将使用可信证书进行验证。响应将按如下进行验证:
-
为配置的 CA 配置文件注册的 CA 证书用于验证响应。
-
OCSP 响应可能包含用于验证 OCSP 响应的证书。收到的证书必须由在 SRX 系列设备中注册的 CA 证书进行签名。接收的证书通过 CA 证书验证后,用于验证 OCSP 响应。
来自 OCSP 服务器的响应可由不同的 SA 签名。支持以下方案:
-
为设备颁发最终实体证书的 CA 服务器也会对 OCSP 撤销状态响应进行签名。SRX 系列设备使用在 SRX 系列设备中注册的 CA 证书验证 OCSP 响应签名。验证 OCSP 响应后,检查证书撤销状态。
-
授权响应者在 OCSP 撤销状态响应上签字。授权响应机构的证书和要验证的最终实体证书必须由同一 CA 颁发。首先使用 SRX 系列设备中注册的 CA 证书验证授权响应者。OCSP 响应使用响应者的 CA 证书进行验证。然后,SRX 系列设备使用 OCSP 响应检查最终实体证书的撤销状态。
-
对于要验证的最终实体证书和 OCSP 响应,有不同的 CA 签名者。OCSP 响应由证书链中的 CA 对要验证的最终实体证书进行签名。(参与 IKE 协商的所有对等方都需要在其各自的证书链中至少有一个公共可信 CA。)使用证书链中的 CA 验证 OCSP 响应者的 CA。验证响应者 CA 证书后,将使用响应者的 CA 证书验证 OCSP 响应。
为了防止重播攻击,可以在 OCSP 请求中发送 一个非连接 有效负载。默认情况下,将发送 Nonce 有效负载,除非它被显式禁用。如果启用,SRX 系列设备期望 OCSP 响应包含一个非连续有效负载,否则撤销检查会失败。如果 OCSP 响应方无法使用 nonce 有效负载进行响应,则必须在 SRX 系列设备上禁用 nonce 有效负载。
在正常业务过程中,证书会因各种原因被撤销。如果您怀疑证书被入侵,或者证书持有人离开公司时,您可能希望撤销该证书。
您可以通过两种方式管理证书撤销和验证:
-
本地 — 这是一个有限的解决方案。
-
通过引用证书颁发机构 (CA) 证书撤销列表 (CRL) — 您可以按照您指定的间隔或 CA 设置的默认间隔自动在线访问 CRL。
在第 1 阶段协商中,SRX 系列设备会验证在 IKE 交换期间从对等方收到的 EE 证书,并使用 CRL 确保 EE 证书不会被其 CA 撤销。
如果设备上未加载 CRL,并且对等证书颁发者是可信的 CA:
- 如果 CRL 是在 CA 配置文件中定义的,Junos OS 将通过配置的 LDAP 或 HTTP CRL 位置(即 CRL 分布点 (CDP))来检索 CRL。
- 如果未在 CA 配置文件中配置 CRL 接入点,则设备会使用 CA 颁发的证书中的 CDP 扩展(如果存在)。CA 颁发的证书可以是管理员注册的或在第 1 阶段协商期间收到的证书。
如果 EE 证书不是由根 CA 颁发的,则每个中间 CA 的证书都会进行相同的验证和撤销检查。根 CA 的 CRL 用于检查根 CA 颁发的证书是否被撤销。如果未在根 CA 配置文件中配置 CDP,则设备在 CA 颁发的证书中使用 CDP 扩展(如果存在)。
可以将 X509 证书中的 CRL 接入点扩展 (.cdp) 添加到 HTTP URL 或 LDAP URL 中。
如果证书不包含证书接入点扩展,并且无法通过轻量级目录访问协议 (LDAP) 或超文本传输协议 (HTTP) 自动检索 CRL,则可以手动检索 CRL 并在设备中加载该 CRL。
即使禁用了 CRL 检查,也会使用证书撤销列表 (CRL) 对本地证书进行验证。可通过通过公钥基础架构 (PKI) 配置禁用 CRL 检查来阻止这一操作。禁用 CRL 检查后,PKI 不会针对 CRL 验证本地证书。
在线证书状态协议与证书撤销列表的比较
在线证书状态协议 (OCSP) 和证书撤销列表 (CRL) 都可用于检查证书的撤销状态。每种方法都有优点和缺点。
-
OCSP 实时提供证书状态,而 CRL 使用缓存数据。对于时间敏感型应用程序,OCSP 是首选方法。
-
CRL 检查速度更快,因为查找证书状态是在 VPN 设备上缓存的信息上完成的。OCSP 需要时间才能从外部服务器获取撤销状态。
-
CRL 需要额外的内存来存储从 CRL 服务器收到的撤销列表。OCSP 不需要额外的内存即可保存证书的撤销状态。
-
OCSP 要求 OCSP 服务器随时可用。当服务器无法访问时,CRL 可以使用缓存数据检查证书的撤销状态。
在 MX 系列和 SRX 系列设备上,CRL 是检查证书撤销状态的默认方法。
另请参阅
示例:手动将 CRL 加载到设备上
此示例说明如何手动将 CRL 加载到设备上。
要求
开始之前:
生成公钥和私有密钥对。请参阅 自签名数字证书。
生成证书请求。请参阅 示例:手动为本地证书生成 CSR 并将其发送至 CA 服务器。
配置证书颁发机构 (CA) 配置文件。请参阅 示例:配置 CA 配置文件。
将证书加载到设备上。请参阅 示例:手动加载 CA 和本地证书。
概述
您可以手动加载 CRL,也可以在验证证书有效性时让设备自动加载。要手动加载 CRL,请从 CA 获取 CRL 并将其传输到设备(例如,使用 FTP)。
在此示例中,您将加载从设备上 /var/tmp 目录中调用 revoke.crl
的 CRL 证书。CA 配置文件称为 ca-profile-ipsec
。(最大文件大小为 5 MB。)
如果 CRL 已加载到 ca 配置文件中,则必须首先运行命令 clear security pki crl ca-profile ca-profile-ipsec
以清除旧的 CRL。
配置
程序
逐步过程
要手动加载 CRL 证书:
加载 CRL 证书。
[edit] user@host> request security pki crl load ca-profile ca-profile-ipsec filename /var/tmp/revoke.crl
Junos OS 支持加载 X509、PKCS #7、DER 或 PEM 格式的 CA 证书。
验证
要验证配置是否工作正常,请输入 show security pki crl
操作模式命令。
了解动态 CRL 下载和检查
数字证书的颁发期限为一定期限,且在指定的到期日期之后无效。CA 可以通过在证书撤销列表 (CRL) 中列出已颁发的证书来撤销该证书。在对等证书验证期间,通过将 CRL 从 CA 服务器下载到本地设备来检查对等证书的撤销状态。
为了在未配置 CA 配置文件时对证书进行 CRL 检查,将创建动态 CA 配置文件。将在本地设备上以该格式 dynamic-nnn
自动创建动态 CA 配置文件。
动态 CA 配置文件:
- 允许本地设备根据对等方本地证书颁发者下载动态 CA 和动态 CRL(适用于相应 CA)
- 检查对等方证书的撤销状态
VPN 设备会检查对等方 EE 证书的撤销状态。VPN 设备使用从对等方 接收的证书来请执行以下操作:
- 提取 URL 以动态下载 CA 的 CRL
- 检查对等方 EE 证书的撤销状态
在 图 1中,Host-A 可以使用从 Host-B 收到的销售 CA 和 EE 证书动态下载适用于 Sales-CA 的 CRL 并检查 Host-B 证书的撤销状态。

如果是单一层次结构 CA 服务器或 CA 证书链,则本地 EE 证书和收到的对等 EE 证书将从同一 CA 服务器颁发。
以下是基于不同配置的一些 SRX 系列设备行为:
- 如果为 SRX 系列设备配置了可信-ca 或可信-ca-组,则设备不会验证或信任任何其他 CA。
- 如果您定义的 CA 配置文件包含一个 CA 链,其中 SRX 系列设备仅信任根 CA,而对等方有一个由子 CA 将此根签名的证书,则动态 CA 和 CRL 将被添加到设备中。
表 1 提供了几个未创建动态 CA 或 CRL 的示例场景:
场景 |
情况 |
---|---|
示例场景 1 |
在 CA 配置文件中,您为 CA 配置文件名称定义了可信 CA,并且从具有由其他 CA 签名且未在 CA 配置文件中定义为可信 CA 的证书的设备接收连接。 |
示例场景 2 |
您定义的 CA 配置文件包含一系列 CA,其中 SRX 系列设备仅信任子 CA,而对等方有此子 CA 之上的级别签名的证书。 |
要启用动态 CA 配置文件,必须在 revocation-check crl
[edit security pki ca-profile profile-name
] 层次结构级别配置根 CA 配置文件上的选项。
动态 CA 配置文件继承了根 CA 配置文件的撤销检查属性。在 图 1中,Host-A 上的 Root-CA 的 CA 配置文件配置可启用动态 CA 配置文件,如以下输出所示:
admin@host-A# show security pki { ca-profile Root-CA { ca-identity Root-CA; enrollment { url “www.example.net/scep/Root/”; } revocation-check { crl; } } }
在适用于 Sales-CA 的 Host-A 上创建动态 CA 配置文件。销售 CA 动态 CA 配置文件继承了 Root-CA 的撤销检查。
revocation-check disable
如果在 Root-CA 配置文件中配置了语句,则不会创建动态 CA 配置文件,并且不会执行动态 CRL 下载和检查。
从动态 CA 配置文件下载的 CCL 数据使用 show security pki crl
命令显示的方式与配置 CA 配置文件下载的 CCL 相同。动态 CA 配置文件中的 CRL 会像设备中配置的 CA 配置文件一样定期更新。从 CA 服务器下载的 CRL 的签名验证也需要对等 CA 证书。
需要有 CA 证书来验证从 CA 服务器收到的 CRL;因此,从对等方收到的 CA 证书存储在本地设备上。从对等方接收的 CA 证书用于验证 CRL 及其颁发的证书。由于收到的 CA 证书不是由管理员注册的,因此在验证到根 CA 的整个证书链之前,成功证书验证的结果才最终得以实现。根 CA 的证书必须由管理员注册。
另请参阅
示例:使用 CRL 位置配置证书颁发机构配置文件
此示例说明如何使用 CRL 位置配置证书颁发机构配置文件。
要求
开始之前:
在设备中生成密钥对。请参阅 数字证书。
创建包含特定于 CA 的信息的 CA 配置文件。请参阅 示例:配置 CA 配置文件。
从 CA 获取个人证书。请参阅 示例:手动为本地证书生成 CSR 并将其发送至 CA 服务器。
将证书加载到设备上。请参阅 示例:手动加载 CA 和本地证书。
配置自动重新注册。请参阅 示例:配置 SecurID 用户身份验证。
如有必要,在设备上加载证书的 CRL。请参阅 示例:手动将 CRL 加载到设备上。
概述
在此示例中,您可以指示设备检查所调用 my_profile
的 CA 配置文件的有效性,如果 CRL 未随附 CA 证书,并且未加载在设备上,则从 URL http://abc/abc-crl.crl
检索 CRL。
配置
程序
逐步过程
要使用 CRL 配置证书:
指定 CA 配置文件和 URL。
[edit] user@host# set security pki ca-profile my_profile revocation-check crl url http://abc/abc-crl.crl
完成设备配置后,提交配置。
[edit] user@host# commit
验证
要验证配置是否工作正常,请输入 show security pki
操作模式命令。
示例:验证证书的有效性
此示例说明如何验证证书的有效性。
要求
配置此功能之前,不需要除设备初始化之外的特殊配置。
概述
在此示例中,您将手动验证证书,以确定证书是否已被撤销,或者用于创建本地证书的 CA 证书是否不再存在于设备上。
手动验证证书时,设备将使用 CA 证书 (ca-cert
) 验证本地证书 ( local.cert
)。如果本地证书有效,并在 revocation-check
CA 配置文件中启用了,设备将验证 CRL 是否已加载且有效。如果 CRL 未加载且有效,设备将下载新的 CRL。
对于 CA 颁发的证书或 CA 证书,必须在设备的配置中配置 DNS。DNS 必须能够解析分发 CRL 和 ca 配置文件配置中的 CA 认证/撤销列表 URL 中的主机。此外,您必须能够访问同一主机的网络,才能接收检查。
配置
程序
逐步过程
要手动验证证书的有效性:
验证本地证书的有效性。
[edit] user@host> request security pki local-certificate verify certificate-id local.cert
验证 CA 证书的有效性。
[edit] user@host> request security pki ca-certificate verify ca-profile ca-profile-ipsec
关联的私钥和签名也经过验证。
验证
要验证配置是否工作正常,请输入 show security pki ca-profile
命令。
如果返回错误而不是正验证,故障将记录在 pkid 中。
删除已加载的 CRL(CLI 过程)
如果您不再需要使用它来管理证书撤销和验证,则可以选择删除已加载的 CRL。
使用以下命令删除加载的证书撤销列表:
user@host>
clear security pki crl ca-profile (ca-profile all)
指定 CA 配置文件以删除与配置文件标识的 CA 关联的 CRL,或使用 all
删除所有 CRL。