Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

数字证书

了解数字证书并了解如何配置数字证书。

数字证书是一种通过可信第三方(称为 CA)验证身份的电子方式。或者,您可以使用自签名证书来证明您的身份。

手动证书处理包括生成 PKCS10 请求、向 CA 提交、检索已签名的证书以及手动将证书加载到瞻博网络设备中。根据您的部署环境,可以使用 SCEP 或 CMPv2 进行在线证书注册。

要在建立安全 VPN 连接时使用数字证书验证您的身份,请执行以下作:

  • 获取要从中获取本地证书的 CA 证书,然后将 CA 证书加载到设备上。CA 证书可以包含 CRL,用于识别无效证书。

  • 从您之前加载了其 CA 证书的 CA 获取本地证书,然后在设备中加载本地证书。本地证书用于为每个隧道连接建立瞻博网络设备的身份。

手动生成数字证书:配置概述

要手动获取数字证书:

  1. 在设备上生成密钥对。请参阅 自签名数字证书

  2. 创建一个或多个 CA 配置文件,其中包含特定于 CA 的信息。请参阅 示例:配置 CA 配置文件

  3. 生成本地证书的 CSR 并将其发送到 CA 服务器。请参阅 示例:手动生成本地证书的 CSR 并将其发送到 CA 服务器

  4. 将证书加载到设备上。请参阅 示例:手动加载 CA 和本地证书

  5. 配置自动重新注册。请参阅 示例:使用 SCEP 自动续订本地证书

  6. 如有必要,在设备上加载证书的 CRL。请参阅 示例:手动将 CRL 加载到设备上

  7. 如有必要,使用 CRL 位置配置 CA 配置文件。请参阅 示例:使用 CRL 位置配置证书颁发机构配置文件

Junos OS 中的数字证书

对于小型网络,在 IPsec 配置中使用预共享密钥通常就足够了。但是,随着网络的发展,您可能会发现在本地路由器以及所有新的和现有的 IPsec 对等方上添加新的预共享密钥非常困难。数字证书的实施可帮助您扩展 IPsec 网络。

数字证书实现使用 PKI,它要求您生成一个由公钥和私钥组成的密钥对。密钥使用随机数生成器创建,用于对数据进行加密和解密。在不使用数字证书的网络中,启用 IPsec 的设备使用私钥加密数据,IPsec 对等方使用公钥解密数据。

使用数字证书,您和您的 IPsec 对等方可以请求 CA 向您发送包含 CA 公钥的 CA 证书。然后,您请求 CA 注册一个本地数字证书,其中包含您的公钥和一些附加信息。CA 处理您的请求时,会使用 CA 的私钥对您的本地证书进行签名。然后,在本地路由器中安装 CA 证书和本地证书,并在远程设备中加载 CA 证书,然后才能与对等方建立 IPsec 隧道。

当您请求与 IPSec 对等方建立对等关系时,对等方将收到本地证书的副本。由于对等方已加载 CA 证书,因此它可以使用 CA 证书中包含的 CA 公钥来解密已由 CA 私钥签名的本地证书。因此,对等方现在拥有您的公钥副本。在将数据发送给您之前,对等方会使用您的公钥对数据进行加密。当您的本地路由器收到数据时,它会使用您的私钥解密数据。

在 Junos OS 中,必须实施以下步骤才能首次使用数字证书:

  • 配置 CA 配置文件以请求 CA 和本地数字证书 - 该配置文件包含 CA 或注册机构 (RA) 的名称和 URL,以及一些重试计时器设置。

  • 配置证书吊销列表支持 - 证书吊销列表 (CRL) 包含在到期日期之前取消的证书列表。当参与的对等方使用 CRL 时,CA 获取最近颁发的 CRL,并检查对等方数字证书的签名和有效性。您可以手动请求和加载 CRL,将 LDAP 服务器配置为自动处理 CRL 处理,也可以禁用默认启用的 CRL 处理。

  • 向 CA 申请数字证书 - 可以在线或手动申请。联机 CA 数字证书请求使用简单证书注册协议 (SCEP) 格式。如果手动请求 CA 证书,则还必须手动加载证书。

  • 生成私钥/公钥对 — 公钥包含在本地数字证书中,私钥用于解密从对等方收到的数据。

  • 生成和注册本地数字证书 — 本地证书可以使用 SCEP 联机处理,也可以以公钥加密标准 #10 (PKCS-10) 格式手动生成。如果手动创建本地证书请求,则还必须手动加载证书。

  • 将数字证书应用于 IPSec 配置 — 要激活本地数字证书,请将 IKE 提议配置为使用数字证书而不是预共享密钥,在 IKE 策略中引用本地证书,并在服务集中标识 CA。

(可选)您可以执行以下作:

  • 将数字证书配置为自动重新注册 - 从 Junos OS 8.5 版开始,您可以为数字证书配置自动重新注册。

  • 监控数字证书事件并删除证书和请求 — 您可以发出作模式命令来监控使用数字证书建立的 IPSec 隧道并删除证书或请求。

生成根 CA 证书

要在 CLI 中定义自签名证书,必须提供以下详细信息:

  • 证书标识符(在上一步中生成)

  • 证书的 FQDN

  • 拥有证书的实体的电子邮件地址

  • 通用名称和涉及的组织

使用 Junos OS CLI 生成根 CA 证书:

  1. 在作模式下,为本地数字证书生成 PKI 公钥和私钥对。

    在这里,您可以选择以下组合之一:

    • 1024 位(仅限 RSA/DSA)

    • 2048 位(仅限 RSA/DSA)

    • 256 位(仅限 ECDSA)

    • 384 位(仅限 ECDSA)

    • 4096 位(仅限 RSA/DSA)

    • 521 位(仅限 ECDSA)

    例:

  2. 定义自签名证书。

    例:

    通过配置 add-ca-constraint 选项,确保证书可用于对其他证书进行签名。

  3. 在配置模式下,将加载的证书应用为 SSL 代理配置文件中的 root-ca。

    例:

  4. 将根 CA 作为可信 CA 导入客户端浏览器。客户端浏览器需要根 CA 证书才能信任防火墙签名的证书。

手动生成自签名 SSL 证书

要在瞻博网络设备上手动生成自签名 SSL 证书:

  1. 建立基本连接。
  2. 如果您具有 root 登录访问权限,则可以使用以下命令手动生成自签名证书:

    生成证书时,必须指定使用者、电子邮件地址以及域名或 IP 地址。

  3. 要验证证书是否已正确生成和加载,请输入 show security pki local-certificate 作命令,并在“HTTPS Web 管理”下指定 local-certificate

将证书导出到指定位置

使用 PKI 命令生成自签名证书时,新生成的证书存储在预定义位置 (var/db/certs/common/local) 中。

使用以下命令将证书导出到特定位置(在设备内)。您可以指定证书 ID、文件名和文件格式类型 (DER/PEM):

配置根 CA 证书

CA 可以树结构的形式颁发多个证书。根证书是树的最顶层证书,其私钥用于 sign 其他证书。紧挨着根证书下方的所有证书都继承了根证书的签名或可信度。这有点像 notarizing 身份。

要配置根 CA 证书,请执行以下作:

  1. 获取根 CA 证书(通过任一或导入一个)

    • 您可以使用 Junos OS CLI 生成根 CA 证书。

    • 从外部 CA 获取证书(本主题未涵盖)。

  2. 将根 CA 应用于 SSL 代理配置文件。

证书链实施

SSL 转发代理支持证书链实现。让我们讨论一下证书链概念以及如何在防火墙上配置它。

  • 证书颁发机构 (CA) — CA 是受信任的第三方,负责验证实体(如网站、电子邮件地址、公司或个人)的身份,并通过绑定加密密钥颁发数字证书。如果您的组织拥有 CA 服务器,则您将成为自己的 CA 并使用自签名证书。

  • 根证书 — 根证书是由受信任的 CA 颁发的证书。根证书是树的最顶层证书,其私钥用于对其他证书进行签名。紧挨着根证书下方的所有证书都继承了根证书的签名或可信度。这些证书用于在两个端点之间建立连接。

  • 中间 CA 证书 — 中间 CA 证书是由可信根签名的从属证书,专门用于验证 EE 证书。

  • 证书链 — 证书链是包含 SSL 证书、中间证书和根证书的有序证书列表。某些 CA 不使用其根证书进行签名,而是使用中间证书。中间 CA 可以代表根 CA 证书对证书进行签名。根 CA 对中间证书进行签名,形成信任链。

    中间证书必须与 SSL 证书安装在同一台服务器上,以便连接设备(如浏览器、应用程序和移动设备)可以信任该证书。

当您启动连接时,连接设备会检查证书是否真实,以及是否由嵌入在浏览器的可信存储中的可信 CA 颁发。

如果 SSL 证书不是来自受信任的 CA,则连接设备会继续检查 SSL 证书是否由中间 CA 颁发,并且此中间 CA 是否由根 CA 签名。检查一直持续到设备找到根 CA。如果设备找到根 CA,则建立安全连接。如果设备未找到根 CA,则连接将断开,并且 Web 浏览器会显示一条错误消息,提示证书无效或证书不受信任。

证书链支持 SSL 启动

在 SSL 代理模式下,服务器将完整的证书链(包括中间证书)发送到客户端,以验证证书链。

在非代理模式下,在 SSL 启动阶段,客户端仅将客户端证书发送到服务器(如果请求)。然后,服务器导入受信任的 CA 列表以验证客户端证书。

在 SSL 启动期间,设备会生成证书链,并将其与客户端证书一起发送到服务器。SSL 初始阶段的证书链使服务器能够验证证书链,而无需导入链的中间 CA。

以下示例演示如何安装证书链以使浏览器能够信任您的证书。

要求

配置此功能之前,不需要除设备初始化之外的特殊配置。

概述

在此示例中,您有一个域 example.domain-1,并且想要从 XYZ-Authority 为您的域购买证书。但是,XYZ-Authority 不是根 CA,访问浏览器仅信任根 CA 证书。换句话说,它的证书没有直接嵌入到您的浏览器中,因此它不被明确信任。

在这种情况下,使用证书链(中间证书)以以下方式建立信任。

拓扑学

让我们试着通过 图 1 来直观地看到这个链。此图描述了从根 CA 证书到最终用户证书的完整证书链。该链在最终用户证书处终止。

图 1:从证书所有者到根 CA Certificate chain in PKI showing hierarchy: End User Certificate, Intermediate CAs 1-3, leading to Root Certificate Authority. 的认证路径
表 1:证书链详细信息

用户

使用证书

签名人

类型

例子.domain-1

最终用户证书

XYZ 权限

最终用户证书 - 您从 CA 购买的证书

XYZ 权限

证书-1

中级 CA-1

中级证书

中级 CA-1

证书-2

中间级 CA-2

中级证书

中间级 CA-2

证书-3

中级CA-3

中级证书

中级CA-3

证书-4

root-example-authority。这是根 CA。

根证书 - 其证书直接嵌入到您的浏览器中,因此设备可以显式信任该证书

为服务器 example.domain-1 安装最终用户证书时,必须捆绑所有中间证书,并将它们与最终用户证书一起安装。证书链包括从证书 1 到 Root-CA 证书的所有证书。由于 Web 浏览器信任根 CA,因此它还隐式信任所有中间证书。如果 SSL 证书链无效或断开,某些设备将不信任您的证书。

所有证书必须为 PEM 格式。

将串联证书文件导入设备时,CA 会提供一组必须添加到签名服务器证书的链式证书。服务器证书必须出现在组合文件中的链式证书之前。

SSL 证书:配置概述

要配置 SSL 证书链,请执行以下作:

  • 从 CA 购买 SSL 证书,其中包含签名证书和相应的密钥。

  • 配置受信任的 CA 配置文件组。

  • 将签名证书和密钥加载到设备中。

  • 将中间和根 CA 加载到 PKI 内存中。此证书文件包含所有必需的 CA 证书,一个接一个,采用 PEM 格式。

  • 为中间或根 CA 证书创建受信任的 CA 配置文件。

  • 通过配置 SSL 代理配置文件并将其应用于安全策略,将设备设置为使用从 CA 接收的签名证书。SSL 转发代理将此证书链信息(CA 证书配置文件名称)存储在相应的 SSL 配置文件中。作为安全策略实施的一部分,将使用具有证书链信息和 CA 证书的 SSL 配置文件。

证书链处理包括以下过程:

  • 管理员将证书链和本地证书(签名证书)加载到 PKI 证书缓存中。

  • 网络安全 (nsd) 向 PKI 发送请求,以提供在 SSL 代理配置文件中配置的签名证书的证书链信息。

此示例假定您已从 CA 购买了 SSL 证书。

在设备上配置证书链

分步过程 请检查示例配置模板并相应地定位/重写标题

要配置证书链,请执行以下作:

  • 将本地证书加载到 PKI 内存中。

    将显示以下消息:

    请注意,证书 ID 将在 SSL 代理配置文件中的部分 root-ca 下使用。

  • 在 PKI 内存中加载中间或根 CA 证书。

    CA 配置文件包括用于身份验证的证书信息。它包括 SSL 代理在生成新证书时使用的公钥。

    您可以将此证书附加为证书链。

  • 将 CA 配置文件组附加到 SSL 代理配置文件。您可以一次附加一个受信任的 CA,也可以一次加载所有 CA。

  • 在 SSL 代理配置文件中将签名证书应用为 root-ca。

  • 创建安全策略并指定策略的匹配条件。作为匹配条件,指定要为其启用 SSL 代理的流量。此示例假定您已经根据要求创建了安全区域。

    SSL 转发代理将此证书链信息(CA 证书配置文件名称)存储到相应的 SSL 配置文件中。作为安全策略实施的一部分,将使用具有证书链信息和 CA 证书的 SSL 配置文件。

    您可以在连接的浏览器(即客户端)上查看证书链。

配置数字证书

数字证书概述

数字证书提供了一种通过称为 CA 的受信任第三方对用户进行身份验证的方法。CA验证证书持有人的身份,并在证书上“签名”,以证明证书没有被伪造或更改。

证书包括以下信息:

  • 所有者的 DN。DN 是唯一标识符,由一个完全限定的名称组成,包括所有者的通用名称 (CN)、所有者的组织和其他识别信息。

  • 所有者的公钥。

  • 证书颁发的日期。

  • 证书到期的日期。

  • 发出 CA 的 DN。

  • 颁发 CA 的数字签名。

证书中的附加信息允许收件人决定是否接受证书。收件人可以根据到期日期确定证书是否仍然有效。接收方可以根据发证CA检查CA是否被站点信任。

通过证书,CA 获取所有者的公钥,使用自己的私钥对该公钥进行签名,并将其作为证书返回给所有者。接收方可以使用所有者的公钥提取证书(包含 CA 的签名)。通过在提取的证书上使用 CA 的公钥和 CA 的签名,接收方可以验证 CA 的签名和证书的所有者。

使用数字证书时,首先会发送请求,以便从 CA 获取证书。然后,配置数字证书和数字证书 IKE 策略。最后,您可以从 CA 获得数字签名证书。

注意:

没有备用使用者名称的证书不适用于 IPsec 服务。

从 CA 获取 ES PIC 的证书

CA 管理证书请求,并向参与的 IPsec 网络设备颁发证书。创建证书请求时,需要提供有关证书所有者的信息。所需信息及其格式因 CA 而异。

证书使用 X.500 格式的名称,这是一种提供读取和更新访问权限的 DAP。整个名称称为 DN。它由一组组件组成,通常包括 CN(通用名称)、组织 (O)、组织单位 (OU)、国家/地区 (C)、地点 (L) 等。

注意:

对于数字证书的动态注册,Junos OS 仅支持 SCEP。

申请 CA 数字证书

指定 SCEP 服务器的 URL 以及所需证书的 CA 的名称: mycompany.com。存储结果的文件的名称为 文件名 1。输出“Received CA certificate:” 提供证书的签名,允许您(脱机)验证证书是否真实。

注意:

最初,每台路由器最初都会手动注册一个 CA。

为 ES PIC 的数字证书生成私钥对和公钥对

要生成私钥和公 ,请发出以下命令:

name 指定设备在其中存储公钥和私钥的文件名。

key-size 可以是 512、1024、1596 或 2048 字节。默认密钥大小为 1024 字节。

type 可以是 rsadsa。默认值为 RSA。

注意:

使用 SCEP 时,Junos OS 仅支持 RSA。

以下示例说明如何生成私钥和公钥对:

申请 CA 数字证书

申请 CA 数字证书

您可以在线或手动申请 CA 数字证书。要使用 SCEP 从 CA 或 RA 联机请求数字证书,请发出 request security pki ca-certificate enroll ca-profile ca-profile-name 命令。

如果已通过电子邮件或其他OOB机制手动获取CA数字证书,则必须手动加载。要在路由器中手动安装证书,请发出 request security pki ca-certificate load ca-profile profile_name filename /path/filename.cert 命令。

生成公钥-私钥对

密钥对是数字证书实施的关键要素。公钥包含在本地数字证书中,私钥用于解密从对等方收到的数据。要生成私钥-公钥对,请发出 request security pki generate-key-pair certificate-id certificate-id-name 命令。

生成并注册本地数字证书

您可以在线或手动生成和注册本地数字证书。要使用 SCEP 联机生成和注册本地证书,请发出 request security pki local-certificate enroll 命令。要以 PKCS-10 格式手动生成本地证书请求,请发出 request security pki generate-certificate-request 命令。

如果手动创建本地证书请求,则还必须手动加载证书。要在路由器中手动安装证书,请发出 request security pki local-certificate load 命令。

将本地数字证书应用于 IPsec 配置

要激活本地数字证书,请将 IKE 提议配置为使用数字证书而不是预共享密钥,在 IKE 策略中引用本地证书,并在服务集中标识 CA 或 RA。要为数字证书启用 IKE 提议,请在[edit services ipsec-vpn ike proposal proposal-name authentication-method]层次结构级别包含rsa-signatures语句。要在 IKE 策略中引用本地证书,请在[edit services ipsec-vpn ike policy policy-name]层次结构级别包含语local-certificate句。要标识服务集中的 CA 或 RA,请在[edit services service-set service-set-name ipsec-vpn-options]层次结构级别包含trusted-ca语句。

配置自动重新注册数字证书

您可以为数字证书配置自动重新注册。默认情况下,此功能未启用。要为数字证书配置自动重新注册,请在 [编辑安全 PKI] 层次结构级别包含以下auto-re-enrollment语句:

为 ES PIC 配置数字证书

数字证书提供了一种通过称为 CA 的受信任第三方对用户进行身份验证的方法。CA验证证书持有人的身份,并在证书上“签名”,以证明证书没有被伪造或更改。

要定义加密服务接口的数字证书配置,请在 [edit security certificates][edit security ike] 层次结构级别包含以下语句:

为 ES PIC 配置数字证书的任务包括:

配置 ES PIC 的 CA 属性

要为 ES PIC 配置 CA 及其属性,请在 [edit security certificates] 层次结构级别包含以下语句:

ca-profile-name 是 CA 配置文件名称。

执行以下任务以配置 CA 属性:

指定 CA 名称

如果要使用 SCEP 向 CA 注册,则除了 SCEP 服务器的 URL 外,还需要指定证书请求中使用的 CA 名称(CA 标识)。

要指定 CA 身份的名称,请在[edit security certificates certification-authority ca-profile-name]层次结构级别包含ca-name语句:

ca-identity 指定要在证书请求中使用的 CA 身份。它通常是 CA 域名。

配置 CRL

CRL 包含在其到期日期之前已取消的数字证书列表。当参与的对等方使用数字证书时,它会检查证书签名和有效性。它还获取最近颁发的 CRL,并检查证书序列号是否不在该 CRL 上。

要配置 CRL,请包含 crl 语句并指定要在 [edit security certificates certification-authority ca-profile-name] 层次结构级别从中读取 CRL 的文件:

配置 CA 支持的编码类型

默认情况下,编码设置为二进制。Encoding 指定用于 local-certificate and local-key-pair 语句的文件格式。默认情况下,二进制 DER 格式处于启用状态。PEM 是一种以 ASCII 为基数的 64 编码格式。请与您的 CA 核实,以确定它支持哪些文件格式。

要配置 CA 支持的文件格式,请包含该 encoding 语句并在层次结构级别指定二进制或 PEM 格式 [edit security certificates certification-authority ca-profile-name]

指定注册 URL

指定路由器或交换机发送基于 SCEP 的证书注册请求的 CA 位置。要通过命名 CA URL 来指定 CA 位置,请在[edit security certificates certification-authority ca-profile-name]层次结构级别包含语enrollment-url句:

url-name 是 CA 位置。格式为 http://ca-name,其中 ca-name 是 CA 主机 DNS 名称或 IP 地址。

指定要读取数字证书的文件

要指定设备从中读取数字证书的文件,请包含语 file 句并在层次结构级别指定证书文件名 [edit security certificates certification-authority ca-profile-name]

指定 LDAP URL

如果您的 CA 在其 LDAP 服务器上存储其当前 CRL,您可以选择在使用数字证书之前检查您的 CA CRL 列表。如果数字证书显示在 CA CRL 上,则您的路由器或交换机无法使用它。要访问 CA CRL,请在[edit security certificates certification-authority ca-profile-name]层次结构级别包含语ldap-url句:

url-name 是 CA LDAP 服务器名称。格式是 ldap://server-name, server-name CA 主机 DNS 名称或 IP 地址。

配置缓存大小

默认情况下,缓存大小为 2 MB。要配置数字证书的总缓存大小,请在[edit security certificates]层次结构级别包含cache-size语句:

bytes 是数字证书的缓存大小。范围可以从 64 到 4,294,967,295 字节。

注意:

建议将缓存大小限制为 4 MB。

配置负缓存

否定缓存存储否定结果并缩短否定答案的响应时间。它还减少了发送到远程服务器的消息数。保持负缓存状态允许系统在重试查找尝试时快速返回故障情况。如果没有负缓存状态,重试将需要等待远程服务器无法响应,即使系统已经知道远程服务器没有响应。

默认情况下,负缓存为 20 秒。要配置负缓存,请在[edit security certificates]层次结构级别包含语cache-timeout-negative句:

seconds 是负缓存中出现故障的 CA 或路由器证书的时间长度。搜索具有匹配 CA 身份的证书(证书的域名或 CRL 的 CA 域名和串行)时,首先搜索负缓存。如果在负缓存中找到条目,则搜索会立即失败。

注意:

配置较大的负缓存值可能会使您容易受到 DoS 攻击。

配置注册重试次数

默认情况下,注册重试次数设置为 0,即无限次重试。要指定重新向路由器或交换机重新发送证书请求的次数,请在[edit security certificates]层次结构级别包含以下enrollment-retry语句:

attempts 是注册重试次数(0 到 100)。

配置对等证书的最大数量

默认情况下,要缓存的最大对等证书数为 1024。要配置要缓存的最大对等证书数,请在[edit security certificates]层次结构语句级别包含语maximum-certificates句:

number 是要缓存的最大对等证书数。范围是从 64 到 4,294,967,295 个对等证书。

配置证书层次结构的路径长度

CA 可以向其他 CA 颁发证书。这就创建了一个树状的认证层次结构。层次结构中受信任最高的 CA 称为 信任锚点。有时,信任锚点是根 CA,它通常由自身签名。在层次结构中,每个证书都由其上级的 CA 签名。根 CA 证书是一个例外,它通常由根 CA 本身签名。通常,可能需要多个证书链,包括由一个 CA 签名的公钥所有者(最终实体)的证书,以及由其他 CA 签名的零个或多个附加 CA 证书。这种称为认证路径的链是必需的,因为公钥用户仅使用有限数量的保证 CA 公钥进行初始化。

路径长度是指根据 CA 与其“子级”的关系,从一个证书到另一个证书的证书路径。配置 path-length 语句时,您可以指定层次结构的最大深度,以验证从受信任的根 CA 证书到相关证书的证书。有关证书层次结构的详细信息,请参阅 RFC 3280,Internet X.509 公钥基础架构证书和证书吊销列表 (CRL) 配置文件

默认情况下,最大证书路径长度设置为 15。根锚点为 1。

要配置路径长度,请在[edit security certificates]层次结构级别包含语path-length句:

certificate-path-length 是证书路径长度的最大证书数。范围为 2 到 15 个证书。