09-PKI配置
本章节下载: 09-PKI配置 (631.96 KB)
目 录
1.15.1 PKI实体向CA申请证书(采用RSA Keon CA服务器)
1.15.2 PKI实体向CA申请证书(采用Windows 2003 server CA服务器)
1.15.3 PKI实体向CA申请证书(采用OpenCA服务器)
1.15.4 使用RSA数字签名方法进行IKE协商认证(采用Windows 2003 server CA服务器)
设备运行于FIPS模式时,本特性部分配置相对于非FIPS模式有所变化,具体差异请见本文相关描述。有关FIPS模式的详细介绍请参见“安全配置指导”中的“FIPS”。
PKI(Public Key Infrastructure,公钥基础设施)是一个利用公钥理论和技术来实现并提供信息安全服务的具有通用性的安全基础设施。
公钥体制也称为非对称密钥体制,是目前已经得到广泛应用的一种密码体制。该体制使用一个公开的密钥(公钥)和一个保密的密钥(私钥)进行信息的加密和解密,用公钥加密的信息只能用私钥解密,反之亦然。这样的一个公钥和其对应的一个私钥称为一个密钥对。公钥体制的这种特点使其可以应用于安全协议,实现数据源认证、完整性和不可抵赖性。
PKI系统以数字证书的形式分发和使用公钥。数字证书是用户的身份和他所持有的公钥的结合。基于数字证书的PKI系统,能够为网络通信和网络交易(例如电子政务和电子商务)提供各种安全服务。
目前,H3C的PKI特性可为安全协议IPsec(IP Security,IP安全)、SSL(Secure Sockets Layer,安全套接字层)、WAPI(WLAN Authentication and Privacy Infrastructure,无线局域网鉴别与保密基础结构)提供证书管理机制。
数字证书是经CA(Certificate Authority,证书颁发机构)签名的、包含公钥及相关的用户身份信息的文件,它建立了用户身份信息与用户公钥的关联。CA对数字证书的签名保证了证书是可信任的。数字证书的格式遵循ITU-T X.509国际标准,目前最常用的为X.509 V3标准。数字证书中包含多个字段,包括证书签发者的名称、被签发者的名称(或者称为主题)、公钥信息、CA对证书的数字签名、证书的有效期等。
本手册中涉及四类证书:CA证书、RA(Registration Authority,证书注册机构)证书、本地证书和对端证书。
· CA证书是CA持有的证书。若PKI系统中存在多个CA,则会形成一个CA层次结构,最上层的CA是根CA,它持有一个自签名的证书(即根CA对自己的证书签名),下一级CA证书分别由上一级CA签发。这样,从根CA开始逐级签发的证书就会形成多个可信任的链状结构,每一条路径称为一个证书链。
· RA证书是RA持有的证书,由CA签发。RA受CA委托,可以为CA分担部分管理工作。RA在PKI系统中是可选的。
· 本地证书是本设备持有的证书,根据签发者的不同分为如下两种:
¡ 由CA签发的本地证书。
¡ 由设备签发的本地证书,即自签名证书。自签名证书的颁发者和拥有者相同。在设备无法向CA申请本地证书时,可以由设备代替CA签发生成自签名证书,实现简单的证书颁发功能。当设备上的业务模块使用自签名证书与对端通信时,无需从CA获取数字证书,配置相对简单,但此方式存在安全风险,仅适用于对安全性要求不高的场景。
· 对端证书是其它设备持有的证书,由CA签发。
由于用户名称的改变、私钥泄漏或业务中止等原因,需要存在一种方法将现行的证书吊销,即废除公钥及相关的用户身份信息的绑定关系。在PKI中,可以通过发布CRL的方式来公开证书的吊销信息。当一个或若干个证书被吊销以后,CA签发CRL来声明这些证书是无效的,CRL中会列出所有被吊销的证书的序列号。因此,CRL提供了一种检验证书有效性的方式。
CA策略是指CA在受理证书请求、颁发证书、吊销证书和发布CRL时所采用的一套标准。通常,CA以一种叫做CPS(Certification Practice Statement,证书惯例声明)的文档发布其策略。CA策略可以通过带外(如电话、磁盘、电子邮件等)或其它方式获取。由于不同的CA使用不同的策略,所以在选择信任的CA进行证书申请之前,必须理解CA策略。
一个PKI体系由终端PKI实体、CA、RA和证书/CRL发布点四类实体共同组成,如下图1-1。
图1-1 PKI体系结构图
终端PKI实体是PKI服务的最终使用者,可以是个人、组织、设备(如路由器、交换机)或计算机中运行的进程,后文简称为PKI实体。
CA是一个用于签发并管理数字证书的可信PKI实体。其作用包括:签发证书、规定证书的有效期和发布CRL。
RA是一个受CA委托来完成PKI实体注册的机构,它接收用户的注册申请,审查用户的申请资格,并决定是否同意CA给其签发数字证书,用于减轻CA的负担。建议在部署PKI系统时,RA与CA安装在不同的设备上,减少CA与外界的直接交互,以保护CA的私钥。
证书/CRL发布点用于对用户证书和CRL进行存储和管理,并提供查询功能。通常,证书/CRL发布点位于一个目录服务器上,该服务器可以采用LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)协议、HTTP等协议工作。其中,较为常用的是LDAP协议,它提供了一种访问发布点的方式。LDAP服务器负责将CA/RA服务器传输过来的数字证书或CRL进行存储,并提供目录浏览服务。用户通过访问LDAP服务器获取自己和其他用户的数字证书或者CRL。
下面是一个PKI实体申请、使用和维护本地证书的典型工作过程,其中由RA来完成PKI实体的注册:
(1) PKI实体生成密钥对。
(2) PKI实体向RA提出证书申请;
(3) RA审核PKI实体身份,将PKI实体身份信息和公钥以数字签名的方式发送给CA;
(4) CA验证数字签名,同意PKI实体的申请,并颁发证书;
(5) RA接收CA返回的证书,将其发布到LDAP服务器(或其它形式的发布点)上以提供目录浏览服务,并通知PKI实体证书发布成功;
(6) PKI实体通过SCEP(Simple Certificate Enrollment Protocol,简单证书注册协议)从RA处获取证书,利用该证书可以与其它PKI实体使用加密、数字签名进行安全通信。
(7) 两个PKI实体互相发送自己的本地证书给对端以互相验证对端身份的合法性。
(8) 若两个PKI实体均验证对端证书为合法,则两端互相信任,可以建立数据连接;否则,两端互不信任,不能建立数据连接。
(9) 当用户的私钥泄漏或证书即将到期时,可删除本地证书再重新申请新的证书。
PKI技术能满足人们对网络交易安全保障的需求。PKI的应用范围非常广泛,并且在不断发展之中,下面给出几个应用实例。
VPN是一种构建在公用通信基础设施上的专用数据通信网络,它可以利用网络层安全协议(如IPsec)和建立在PKI上的加密与数字签名技术来获得完整性保护。
电子邮件的安全也要求机密性、完整性、数据源认证和不可抵赖。目前发展很快的安全电子邮件协议S/MIME(Secure/Multipurpose Internet Mail Extensions,安全/多用途Internet邮件扩充协议),是一个允许发送加密和有签名邮件的协议。该协议的实现需要依赖于PKI技术。
为了透明地解决Web的安全问题,在浏览器和服务器之间进行通信之前,先要建立SSL连接。SSL协议允许在浏览器和服务器之间进行加密通信,并且利用PKI技术对服务器和浏览器端进行身份验证。
实际组网应用中,某企业的各分支机构属于不同的VPN,且各VPN之间的业务相互隔离。如果各分支机构的用户要通过位于总部VPN中的服务器申请证书,则需要PKI证书申请支持MPLS L3VPN。
如图1-2所示,连接客户端PKI entity的PE设备,通过MPLS L3VPN将私网客户端PKI entity的证书申请报文透传给网络另一端的CA server,CA server接收并处理证书申请信息,连接服务器端的PE设备将CA server签发的证书也通过MPLS L3VPN透传回PKI entity,满足了私网VPN业务隔离情况下的证书申请。
关于MPLS L3VPN的相关介绍请参见“MPLS配置指导”中的“MPLS L3VPN”。
图1-2 证书申请支持MPLS L3VPN
表1-1 PKI配置任务简介
配置任务 |
说明 |
详细配置 |
|
配置PKI实体 |
必选 |
||
配置PKI域 |
必选 |
||
申请证书 |
自动申请证书 |
二者必选其一 |
|
手工申请证书 |
|||
停止证书申请过程 |
可选 |
||
手工获取证书 |
可选 |
||
配置证书验证 |
可选 |
||
配置证书和CRL的存储路径 |
可选 |
||
导出证书 |
可选 |
||
删除证书 |
可选 |
||
配置证书属性的访问控制策略 |
可选 |
||
开启本地证书到期提醒功能 |
可选 |
一份证书是一个公钥与一个实体身份信息的绑定。PKI实体的参数是PKI实体的身份信息,CA根据PKI实体提供的身份信息来唯一标识证书申请者。
一个有效的PKI实体参数中必须至少包括以下参数之一:
(1) DN(Distinguished Name,识别名),包含以下参数:
· 实体通用名。对于DN参数,实体的通用名必须配置。
· 实体所属国家代码,用标准的两字符代码表示。例如,“CN”是中国的合法国家代码,“US”是美国的合法国家代码
· 实体所在地理区域名称
· 实体所属组织名称
· 实体所属组织部门名称
· 实体所属州省
(2) FQDN(Fully Qualified Domain Name,完全合格域名),是PKI实体在网络中的唯一标识
(3) IP地址
配置PKI实体时,需要注意的是:
· PKI实体的配置必须与CA证书颁发策略相匹配,因此建议根据CA证书颁发策略来配置PKI实体,如哪些PKI实体参数为必选配置,哪些为可选配置。申请者的身份信息必须符合CA证书颁发策略,否则证书申请可能会失败。
· Windows 2000 CA服务器的SCEP插件对证书申请的数据长度有一定的限制。PKI实体配置项超过一定数据长度时,CA将不会响应PKI实体的证书申请。这种情况下如果通过离线方式提交申请,Windows 2000 CA服务器可以完成签发。其它CA服务器(例如RSA服务器和OpenCA服务器)目前没有这种限制。
表1-2 配置PKI实体
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建一个PKI实体,并进入该PKI实体视图 |
pki entity entity-name |
缺省情况下,不存在PKI实体 设备支持创建多个PKI实体 |
配置PKI实体的通用名 |
common-name common-name-sting |
缺省情况下,未配置PKI实体的通用名 |
配置PKI实体所属国家代码 |
country country-code-string |
缺省情况下,未配置PKI实体所属国家代码 |
配置PKI实体所在地理区域名称 |
locality locality-name |
缺省情况下,未配置PKI实体所在地理区域名称 |
配置PKI实体所属组织名称 |
organization org-name |
缺省情况下,未配置PKI实体所属组织名称 |
配置PKI实体所属组织部门名称 |
organization-unit org-unit-name |
缺省情况下,未配置PKI实体所属组织部门名称 |
配置PKI实体所属州或省的名称 |
state state-name |
缺省情况下,未配置PKI实体所属州或省的名称 |
配置PKI实体的FQDN |
fqdn fqdn-name-string |
缺省情况下,未配置PKI实体的FQDN |
配置PKI实体的IP地址 |
ip { ip-address | interface interface-type interface-number } |
缺省情况下,未配置PKI实体的IP地址 |
PKI实体在进行PKI证书申请操作之前需要配置一些注册信息来配合完成申请的过程。这些信息的集合就是一个PKI域。
PKI域是一个本地概念,创建PKI域的目的是便于其它应用(比如IKE、SSL)引用PKI的配置。
PKI域中包括以下参数:
(1) 信任的CA名称
PKI实体通过一个可信的CA来完成证书的注册及颁发的。在证书申请之前,若当前的PKI域中没有CA证书,则需要首先获取CA证书,获取CA证书之前必须指定一个信任的CA名称。这个名称会被作为SCEP消息的一部分发送给CA服务器。一般情况下,CA服务器会忽略收到的SCEP消息中的CA名称的具体内容。但是如果在同一台服务器主机上配置了两个CA,且它们的URL是相同的,则需要根据PKI域中指定的信任的CA名词来区分它们。设备信任的CA的名称只是在获取CA证书时使用,申请本地证书时不会用到。
(2) PKI实体名称
向CA发送证书申请请求时,必须指定所使用的PKI实体名,以向CA表明自己的身份。
(3) 证书申请的注册受理机构
证书申请的受理一般由一个独立的注册机构(即RA)来承担,它并不给用户签发证书,只是对用户进行资格审查。有时PKI把注册管理的职能交给CA来完成,而不设立独立运行的RA,但这并不是取消了PKI的注册功能,而是将其作为CA的一项功能而已。推荐使用独立运行的RA作为注册受理机构。
(4) 注册受理机构服务器的URL
证书申请之前必须指定注册受理机构服务器的URL,PKI实体通过SCEP(Simple Certificate Enrollment Protocol,简单证书注册协议)向该URL地址发送证书申请请求。SCEP是专门用于与认证机构进行通信的协议。
(5) 证书申请状态的查询周期和最大次数
PKI实体在发送证书申请后,如果CA手工验证申请,证书的签发会需要很长时间。在此期间,PKI实体会定期发送状态查询,以便在证书签发后能及时获取到证书。设备上可以配置证书申请状态的查询周期和最大次数。
(6) LDAP服务器主机名
在PKI系统中,可以采用LDAP服务器来作为证书或CRL发布点,这时就需要指定LDAP服务器的位置。
(7) 验证CA根证书时使用的指纹
CA根证书的指纹,即根证书内容的散列值,该值对于每一个证书都是唯一的。PKI域中可以指定验证CA根证书时使用的指纹,缺省情况下未指定该指纹。
当设备从CA获得根证书时,可能需要验证CA根证书的指纹,具体包括以下两种情况:
· 通过命令获取CA证书或者导入CA证书,如果获取到的CA证书链中包含了设备上没有的CA根证书,需要验证CA根证书的指纹。如果PKI域中指定了验证根证书的指纹,且设备获取到的CA根证书的指纹与在PKI域中指定的指纹不同,则设备将拒绝接收该CA根证书,继而相应的获取CA证书或者导入CA证书操作会失败;如果PKI域中未指定验证根证书的指纹,则会提示用户自行验证根证书指纹。
· 当IKE协商等应用触发设备进行本地证书申请时,如果配置的证书申请方式为自动方式,且本地没有CA证书,设备会自动从CA服务器上获取CA证书。如果获取到的CA证书链中包含了设备上没有的CA根证书,则需要验证CA根证书的指纹。如果PKI域中指定了验证根证书的指纹,且设备获取到的CA根证书的指纹与在PKI域中指定的指纹不同,则设备将拒绝接收该CA根证书,继而本地证书申请的操作会失败。如果PKI域中未指定验证根证书的指纹,则本地证书申请的操作会失败。
(8) 证书申请使用的密钥对
密钥对的产生是证书申请过程中重要的一步。申请过程使用了一对主机密钥:私钥和公钥。私钥由用户保留,公钥和其它信息则交由CA进行签名,从而产生证书。在PKI域中可以引用三种算法的密钥对,分别为DSA密钥对、ECDSA密钥对、RSA密钥对。有关DSA、ECDSA和RSA密钥对的具体配置请参见“安全配置指导”中的“公钥管理”。申请证书前必须指定使用的密钥对,但该密钥对不必已经存在。申请过程中,如果指定的密钥对不存在,PKI实体可以根据指定的名字、算法和密钥模数长度生成相应的密钥对。
(9) 证书的扩展用途
设备支持的证书扩展用途包括以下几种:
· IKE使用
· SSL客户端使用
· SSL服务器端使用
证书申请中会带有指定的证书扩展用途,但最终签发的证书中带有哪些扩展用途,由CA自己的策略决定,可能与PKI域中指定的配置不完全一致。应用程序(例如IKE,SSL)认证过程中是否会使用这些用途,由应用程序的策略决定。
(10) 本地PKI操作产生的协议报文使用的源IP地址
如果希望PKI实体操作产生的PKI协议报文的源IP地址是一个特定的地址,例如当CA服务器上的策略要求仅接受来自指定地址或网段的证书申请时,则需要通过配置指定该地址。
表1-3 配置PKI域
配置任务 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
创建一个PKI域,并进入PKI域视图 |
pki domain domain-name |
缺省情况下,不存在PKI 域 |
|
配置设备信任的CA名称 |
ca identifier name |
获取本地证书之前,若当前的PKI域中没有CA证书,则需要首先获取CA证书。获取CA证书之前,必须配置信任的CA名称 缺省情况下,未配置信任的CA名称 |
|
指定用于申请证书的PKI实体名称 |
certificate request entity entity-name |
缺省情况下,未指定用于申请证书的PKI实体名称 |
|
配置证书申请的注册受理机构 |
certificate request from { ca | ra } |
缺省情况下,未指定证书申请的注册受理机构 |
|
配置注册受理机构服务器的URL |
certificate request url url-string [ vpn-instance vpn-instance-name ] |
缺省情况下,未指定注册受理机构服务器的URL |
|
(可选)配置证书申请状态查询的周期和最大次数 |
certificate request polling { count count | interval interval } |
缺省情况下,证书申请查询间隔为20分钟,最多查询50次 |
|
指定LDAP服务器 |
ldap-server host hostname [ port port-number ] [ vpn-instance vpn-instance-name ] |
需要通过LDAP协议获取证书时,此配置必选;需要通过LDAP协议获取CRL时,如果CRL的URL中未包含发布点地址信息,则此配置必选 缺省情况下,未指定LDAP服务器 |
|
配置验证CA根证书时使用的指纹 |
非FIPS模式下: root-certificate fingerprint { md5 | sha1 } string FIPS模式下: root-certificate fingerprint sha1 string |
当证书申请方式为自动方式时,此配置必选;当证书申请方式为手工方式时,此配置可选,若不配置,需要用户自行验证根证书指纹 缺省情况下,未指定验证根证书时使用的指纹 |
|
指定证书申请时使用的密钥对 |
指定RSA密钥对 |
public-key rsa { { encryption name encryption-key-name [ length key-length ] | signature name signature-key-name [ length key-length ] } * | general name key-name [ length key-length ] } |
三者选其一 缺省情况下,未指定所使用的密钥对 |
指定ECDSA密钥对 |
public-key ecdsa name key-name [ secp192r1 | secp256r1 | secp384r1 | secp521r1 ] |
||
指定DSA密钥对 |
public-key dsa name key-name [ length key-length ] |
||
(可选)指定证书的扩展用途 |
usage { ike | ssl-client | ssl-server } * |
缺省情况下,证书可用于所有用途 |
|
(可选)指定PKI操作产生的协议报文使用的源IP地址 |
source ip { ip-address | interface interface-type interface-number } |
二者选其一 缺省情况下,PKI操作产生的协议报文的源IP地址为系统根据路由查找到的出接口的地址 |
|
source ipv6 { ipv6-address | interface interface-type interface-number } |
申请证书的过程就是PKI实体向CA自我介绍的过程。PKI实体向CA提供身份信息,以及相应的公钥,这些信息将成为颁发给该PKI实体证书的主要组成部分。PKI实体向CA提出证书申请,有离线和在线两种方式。
· 离线申请方式下,CA允许申请方通过带外方式(如电话、磁盘、电子邮件等)向CA提供申请信息。
· 在线申请方式下,实体通过SCEP协议向CA提交申请信息。在线申请有自动申请和手工申请两种方式。下文将详细介绍这两种方式的具体配置。
· 申请证书之前必须保证设备的系统时钟与CA的时钟同步,否则设备可能会错误地认为证书不在有效期内,导致申请证书失败。调整系统时钟的方法请参见“基础配置指导”中的“设备管理”。
· 对于系统自动申请到的证书,当它们即将过期时或正式过期后,系统不会自动向CA发起重新申请。这种情况下,可能会由于证书过期造成应用协议的业务中断。
配置证书申请方式为自动方式后,当有应用协议与PKI联动时,如果应用协议中的PKI实体无本地证书(例如,IKE协商采用数字签名方法进行身份认证,但在协商过程中没有发现本地证书),则PKI实体自动通过SCEP协议向CA发起证书申请,并在申请成功后将本地证书获取到本地保存。在证书申请之前,若当前的PKI域中没有CA证书,也会首先自动获取CA证书。在申请过程中,如果指定的密钥对不存在,则PKI实体根据PKI域中指定的名字、算法和长度生成相应的密钥对。
需要注意的是,本地证书已存在的情况下,为保证密钥对与现存证书的一致性,不建议执行命令public-key local create或public-key local destroy创建或删除与现存证书使用的密钥对相同名称的密钥对,否则会导致现存证书不可用。若要重新申请本地证书,必须首先删除本地证书,然后再执行public-key local create命令生成新的密钥对,或使用命令public-key local destroy删除旧的密钥对后再生成新的密钥对。有关公钥相关命令的详细介绍,请参见“安全命令参考”中的“公钥管理”。
表1-4 自动申请证书
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入PKI域视图 |
pki domain domain-name |
- |
配置证书申请为自动方式 |
certificate request mode auto [ password { cipher | simple } string ] |
缺省情况下,证书申请为手工方式 证书申请为自动方式时,可以指定吊销证书时使用的密码,是否需要指定密码是由CA服务器的策略决定的 |
申请证书之前必须保证设备的系统时钟与CA的时钟同步,否则设备可能会错误地认为证书不在有效期内,导致申请证书失败。调整系统时钟的方法请参见“基础配置指导”中的“设备管理”。
配置证书申请方式为手工方式后,需要手工执行申请本地证书的操作。手工申请成功后,设备将把申请到的本地证书自动获取到本地保存。
· 一个PKI域中,只能存在DSA、ECDSA或RSA中一种密钥算法类型的本地证书。采用DSA和ECDSA算法时,一个PKI域中最多只能同时申请和存在一个本地证书;采用RSA算法时,一个PKI域中最多只能同时申请和存在一个用途为签名的RSA算法本地证书和一个用途为加密的RSA算法本地证书。
· 如果一个PKI域中已存在一个本地证书,为保证密钥对与现存证书的一致性,不建议执行命令public-key local create或public-key local destroy创建或删除与现存证书使用的密钥对相同名称的密钥对,否则会导致现存证书不可用。若要重新申请本地证书,必须首先删除本地证书,然后再执行public-key local create命令生成新的密钥对或使用命令public-key local destroy删除旧的密钥对。有关该命令的详细介绍,请参见“安全命令参考”中的“公钥管理”。
· 如果一个PKI域中已存在一个本地证书,则不允许再手工执行在线证书申请操作申请一个与其互斥的证书,以避免因相关配置的修改使得证书与注册信息不匹配。若想重新申请,请先使用pki delete-certificate命令删除本地证书,然后再执行pki request-certificate domain命令。
· 当无法通过SCEP协议向CA在线申请证书时,可以首先通过执行命令pki request-certificate domain pkcs10打印出证书申请信息到终端上,或者通过执行指定pki request-certificate domain pkcs10 filename将证书申请信息保存到指定的文件中,然后再通过带外方式将这些本地证书申请信息发送给CA进行证书申请。
在手工申请本地证书之前,必须保证当前的PKI域中已经存在CA证书且指定了证书申请时使用的密钥对。
· PKI域中的CA证书用来验证获取到的本地证书的真实性和合法性。在证书申请之前,若PKI域中没有CA证书,则需要手工获取CA证书。
· PKI域中指定的密钥对用于为PKI实体申请本地证书,其中的公钥和其他信息交由CA进行签名,从而产生本地证书。
表1-5 手工申请证书
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入PKI域视图 |
pki domain domain-name |
- |
配置证书申请为手工方式 |
certificate request mode manual |
缺省情况下,证书申请为手工方式 |
退回系统视图 |
quit |
- |
手工获取CA证书 |
请参见1.7 |
- |
手工申请本地证书或生成PKCS#10证书申请 |
pki request-certificate domain domain-name [ password password ] [ pkcs10 [ filename filename ] ] |
此命令不会被保存在配置文件中 执行本命令时,如果本地不存在PKI域所指定的密钥对,则系统会根据PKI域中指定的名字、算法和长度自动生成对应的密钥对 |
用户可以通过此配置停止正在进行中的证书申请过程。用户在证书申请时,可能由于某种原因需要改变证书申请的一些参数,比如通用名、国家代码、FQDN等,而此时证书申请过程正在进行,为了新的申请不与之前的申请发生冲突,建议先停止之前的申请,再进行新的申请。可以通过display pki certificate request-status命令查询正在进行中的证书申请过程。
另外,删除PKI域也可以停止对应的证书申请过程。
表1-6 停止证书申请过程
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
停止证书申请过程 |
pki abort-certificate-request domain domain-name |
此命令不会被保存在配置文件中 |
获取证书的目的是:将CA签发的与PKI实体所在PKI域有关的证书存放到本地,以提高证书的查询效率,减少向PKI证书发布点查询的次数。
用户通过此配置可以将已存在的CA证书、本地证书或者外部PKI实体证书获取至本地保存。获取证书有两种方式:离线导入方式和在线方式。
· 离线导入方式:通过带外方式(如FTP、磁盘、电子邮件等)取得证书,然后将其导入至本地。如果设备所处的环境中没有证书的发布点、CA服务器不支持通过SCEP协议与设备交互、或者证书对应的密钥对由CA服务器生成,则可采用此方式获取证书。
· 在线方式:从证书发布服务器上在线获取证书并下载至本地,包括通过SCEP协议获取CA证书和通过LDAP协议获取本地或对端证书。
· 如果本地已有CA证书存在,则不允许执行在线方式获取CA证书的操作。若想重新获取,请先使用pki delete-certificate命令删除CA证书与本地证书后,再执行获取CA证书的命令。
· 如果PKI域中已经有本地证书或对端证书,仍然允许执行在线方式获取本地证书或对端证书,获取到的证书直接覆盖已有证书。但对于RSA算法的证书而言,一个PKI域中可以存在一个签名用途的证书和一个加密用途的证书,不同用途的证书不会相互覆盖。
· 如果使能了CRL检查,手工获取证书时会触发CRL检查,如果CRL检查时发现待获取的证书已经吊销,则获取证书失败。
· 设备根据自身的系统时间来判断当前的证书是否还在其有效期内,设备系统时间不准确可能导致设备对于证书有效期的判断出现误差或错误,例如认为实际还在有效期内证书已过期,因此请确保设备系统时间的准确性。
获取本地证书或对端证书之前必须完成以下操作:
· 在线获取本地证书和对端证书是通过LDAP协议进行的,因此在线获取本地证书或对端证书之前必须完成PKI域中指定LDAP服务器的配置。
· 离线导入证书之前,需要通过FTP、TFTP等协议将证书文件传送到设备的存储介质中。如果设备所处的环境不允许使用FTP、TFTP等协议,则可以直接采用在终端上粘贴证书内容的方式导入,但是粘贴的证书必须是PEM(Privacy Enhanced Mail,增强保密邮件)格式的,因为只有PEM格式的证书内容为可打印字符。
· 只有存在签发本地证书的CA证书链才能成功导入本地证书,这里的CA证书链可以是保存在PKI域中的,也可以是本地证书中携带的。若设备和本地证书中都没有CA证书链,则需要预先获取到CA证书链。导入对端证书时,需要满足的条件与导入本地证书相同。
· 离线导入含有被加密的密钥对的本地证书时,需要输入加密口令。请提前联系CA服务器管理员取得该口令。
表1-7 手工获取证书
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
手工获取证书 |
离线导入方式 |
pki import domain domain-name { der { ca | local | peer } filename filename | p12 local filename filename | pem { ca | local | peer } [ filename filename ] } |
pki retrieve-certificate命令不会被保存在配置文件中 |
在线方式 |
pki retrieve-certificate domain domain-name { ca | local | peer entity-name } |
在使用每一个证书之前,必须对证书进行验证。证书验证包括检查本地、CA证书是否由可信的CA签发,证书是否在有效期内,证书是否未被吊销。申请证书、获取证书以及应用程序使用PKI功能时,都会自动对证书进行验证,因此一般不需要使用命令行手工进行证书验证。如果用户希望在没有任何前述操作的情况下单独执行证书的验证,可以手工执行证书验证。
配置证书验证时可以设置是否必须进行CRL检查。CRL检查的目的是查看PKI实体的证书是否被CA吊销,若检查结果表明PKI实体的证书已经被吊销,那么该证书就不再被其它PKI实体信任。
· 如果配置为开启CRL检查,则需要首先从CRL发布点获取CRL。PKI域中未配置CRL发布点的URL时,从该待验证的证书中获取发布点信息:优先获取待验证的证书中记录的发布点,如果待验证的证书中没有记录发布点,则获取CA证书中记录的发布点(若待验证的证书为CA证书,则获取上一级CA证书中记录的发布点)。如果无法通过任何途径得到发布点,则通过SCEP协议获取CRL。由于设备通过SCEP获取CRL是在获取到CA证书和本地证书之后进行,因此该方式下必须保证设备已经获取到CA证书和本地证书。开启了CRL检查的情况下,如果PKI域中不存在相应的CRL、CRL获取失败、或者CRL检查时发现待获取的证书已经吊销,则手动申请证书、获取证书的操作将会失败。
· 如果配置为关闭CRL检查,则不需要获取CRL。
需要注意的是,验证一个PKI域中的CA证书时,系统会逐级验证本域CA证书链上的所有CA证书的有效性,因此需要保证设备上存在该CA证书链上的所有上级CA证书所属的PKI域。验证某一级CA证书时,系统会根据该CA证书的签发者名(IssuerName)查找对应的上一级CA证书,以及上一级CA证书所属的(一个或多个)PKI域。若查找到了相应的PKI域,且该PKI域中开启了CRL检查,则根据该PKI域中的配置对待验证的CA证书进行吊销检查,否则不检查待验证的CA证书是否被吊销。检查CA证书链中的CA(根CA除外)是否被吊销后,从根CA逐级验证CA证书链的签发关系。
表1-8 开启CRL检查的证书验证
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入PKI域视图 |
pki domain domain-name |
- |
(可选)配置CRL发布点的URL |
crl url url-string [ vpn-instance vpn-instance-name ] |
缺省情况下,未指定CRL发布点的URL |
开启CRL检查 |
crl check enable |
缺省情况下,CRL检查处于开启状态 |
退回系统视图 |
quit |
- |
获取CA证书 |
请参见1.7 |
在进行本地证书验证操作之前必须首先获取CA证书 |
(可选)获取CRL并下载至本地 |
pki retrieve-crl domain domain-name |
验证非根CA证书和本地证书时,如果PKI域中没有CRL,系统会自动获取CRL再进行验证;如果PKI域已经存在CRL,则可以继续获取CRL,获取到的新CRL会覆盖已有CRL 获取到的CRL不一定是本域CA签发的,但肯定是本域CA证书链上的一个CA证书签发的 |
验证证书的有效性 |
pki validate-certificate domain domain-name { ca | local } |
- |
表1-9 关闭CRL检查的证书验证
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入PKI域视图 |
pki domain domain-name |
- |
关闭CRL检查 |
undo crl check enable |
缺省情况下,CRL检查处于开启状态 |
退回系统视图 |
quit |
- |
获取CA证书 |
请参见1.7 |
在进行本地证书验证操作之前必须首先获取CA证书 |
验证证书的有效性 |
pki validate-certificate domain domain-name { ca | local } |
此命令不会被保存在配置文件中 |
重新配置了证书或CRL的存储路径后为了防止证书或CRL文件的丢失,重启或关闭设备前一定要保存配置。
获取到本地的证书和CRL有默认存储路径,但同时也允许用户根据自己的需要修改证书文件和CRL文件的存储路径。证书和CRL的存储路径可以指定为不同的路径。
修改了证书或CRL的存储目录后,原存储路径下的证书文件(以.cer和.p12为后缀的文件)和CRL文件(以.crl为后缀的文件)将被移动到新路径下保存。
表1-10 配置证书和CRL的存储路径
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置证书和CRL的存储路径 |
pki storage { certificates | crls } dir-path |
缺省情况下,证书和CRL的存储路径为设备存储介质上的PKI目录 |
以PKCS12格式导出所有证书时,PKI域中必须有本地证书,否则会导出失败。
PKI域中已存在的CA证书、本地证书可以导出到文件中保存或导出到终端上显示,导出的证书可以用于证书备份或供其它设备使用。
· 导出证书时若不指定文件名,则表示要将证书导出到终端上显示,这种方式仅PEM格式的证书才支持。
· 导出证书时若指定文件名,则表示证书将导出到指定文件中保存。导出RSA算法类型的本地证书时,设备上实际保存证书的证书文件名称并不一定是用户指定的名称,它与本地证书的密钥对用途相关,具体的命名规则请参见命令手册。
表1-11 导出证书
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
导出DER格式的证书 |
pki export domain domain-name der { all | ca | local } filename filename |
根据需要选择其中一个或多个 |
导出PKCS12格式的证书 |
pki export domain domain-name p12 { all | local } passphrase p12-key filename filename |
|
导出PEM格式的证书 |
pki export domain domain-name pem { { all | local } [ { 3des-cbc | aes-128-cbc | aes-192-cbc | aes-256-cbc | des-cbc } pem-key ] | ca } [ filename filename ] |
删除CA证书时将同时删除所在PKI域中的本地证书、所有对端证书以及CRL。
由CA颁发的证书都会设置有效期,证书生命周期的长短由签发证书的CA来确定。当用户的私钥被泄漏或证书的有效期快到时,应该重新申请新的证书。证书过期或希望重新申请证书时,可以通过此配置删除已经存在的本地证书、CA证书或对端证书。
重新申请证书之前,应该先使用命令public-key local destroy删除旧的密钥对,再使用public-key local create生成新的密钥对。相关命令的详细介绍可参考“安全命令参考”中的“公钥管理”。
表1-12 配置删除证书
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置删除证书 |
pki delete-certificate domain domain-name { ca | local | peer [ serial serial-num ] } |
如果未指定序列号,则删除所有对端证书 |
通过配置证书的访问控制策略,可以对安全应用中的用户访问权限进行进一步的控制,保证了与之通信的服务器端的安全性。例如,在HTTPS(Hypertext Transfer Protocol Secure,超文本传输协议的安全版本)应用中,HTTPS服务器可以通过引用证书访问控制策略,根据自身的安全需要对客户端的证书合法性进行检测。
一个证书访问控制策略中可以定义多个证书属性的访问控制规则(通过rule命令配置),每一个访问控制规则都与一个证书属性组关联。一个证书属性组是一系列属性规则(通过attribute命令配置)的集合,这些属性规则是对证书的颁发者名、主题名以及备用主题名进行过滤的匹配条件。
如果一个证书中的相应属性能够满足一条访问控制规则所关联的证书属性组中所有属性规则的要求,则认为该证书和该规则匹配。如果一个证书访问控制策略中有多个规则,则按照规则编号从小到大的顺序遍历所有规则,一旦证书与某一个规则匹配,则立即结束检测,不再继续匹配其它规则。
规则的匹配结果决定了证书的有效性,具体如下:
· 如果证书匹配到的规则中指定了permit关键字,则该证书将被认为通过了访问控制策略的检测且有效。
· 如果证书匹配到的规则中指定了deny关键字,则该证书将被认为未通过访问控制策略的检测且无效。
· 若遍历完所有规则后,证书没有与任何规则匹配,则该证书将因不能通过访问控制策略的检测而被认为无效。
· 若证书访问控制策略下某访问控制规则关联的证书属性组不存在,或者该证书属性组没有配置任何属性,则认为被检测的证书都能够与此规则匹配。
· 若安全应用(如HTTPS)引用的证书访问控制策略不存在,则认为该应用中被检测的证书有效。
表1-13 配置证书访问控制策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建证书属性组,并进入证书属性组视图 |
pki certificate attribute-group group-name |
缺省情况下,不存在证书属性组 |
(可选)配置证书颁发者名、证书主题名及备用主题名的属性规则 |
attribute id { alt-subject-name { fqdn | ip } | { issuer-name | subject-name } { dn | fqdn | ip } } { ctn | equ | nctn | nequ} attribute-value |
缺省情况下,对证书颁发者名、证书主题名及备用主题名没有限制 |
退回系统视图 |
quit |
- |
创建证书访问控制策略,并进入证书访问控制策略视图 |
pki certificate access-control-policy policy-name |
缺省情况下,不存在证书访问控制策略 |
配置证书属性的访问控制规则 |
rule [ id ] { deny | permit } group-name |
缺省情况下,不存在证书属性的访问控制规则,认为所有证书都可以通过该控制策略的过滤 一个证书访问控制策略中可配置多个访问控制规则 |
由于证书都会设置有效期,当需要检查PKI域下的本地证书是否到期时,可以开启本地证书到期提醒功能,每隔1小时,将会对证书做一次检查。在距离本地证书到期30天内(含30天)或证书已经到期时,系统会打印本地证书到期提醒日志,且每隔一天打印一次。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启本地证书到期提醒功能 |
pki certificate logging { local-will-expire | local-has-expired } enable |
缺省情况下,本地证书到期提醒功能处于关闭状态 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后PKI的运行情况,通过查看显示信息验证配置的效果。
表1-15 PKI显示和维护
操作 |
命令 |
显示证书内容 |
display pki certificate domain domain-name { ca | local | peer [ serial serial-num ] } |
显示证书申请状态 |
display pki certificate request-status [ domain domain-name ] |
显示存储在本地的CRL |
display pki crl domain domain-name |
显示证书属性组的配置信息 |
display pki certificate attribute-group [ group-name ] |
显示证书访问控制策略的配置信息 |
display pki certificate access-control-policy [ policy-name ] |
· 当采用Windows Server作为CA时,需要安装SCEP插件。在这种情况下,配置PKI域时,需要使用certificate request from ra命令指定PKI实体从RA注册申请证书。
· 当采用RSA Keon软件时,不需要安装SCEP插件。在这种情况下,配置PKI域时,需要使用certificate request from ca命令指定PKI实体从CA注册申请证书。
· 当采用OpenCA软件时,需要启用SCEP功能,在这种情况下,配置PKI域时,需要使用certificate requeset from ra命令指定PKI实体从RA注册申请证书。
配置PKI实体Device向CA服务器申请本地证书。
图1-3 PKI实体向CA申请证书组网图
(1) 配置CA服务器
· 创建CA服务器myca
在本例中,CA服务器上首先需要进行基本属性Nickname和Subject DN的配置。其它属性选择默认值。其中,Nickname为可信任的CA名称(本例中为myca),Subject DN为CA的DN属性,包括CN、OU、O和C。
· 配置扩展属性
基本属性配置完毕之后,还需要在生成的CA服务器管理页面上对“Jurisdiction Configuration”进行配置,主要内容包括:根据需要选择合适的扩展选项;启动自动颁发证书功能;添加可以自动颁发证书的地址范围。
以上配置完成之后,还需要保证设备的系统时钟与CA的时钟同步才可以正常使用设备来申请证书和获取CRL。
(2) 配置Device
· 配置PKI实体
# 配置PKI实体名称为aaa,通用名为Device。
<Device> system-view
[Device] pki entity aaa
[Device-pki-entity-aaa] common-name Device
[Device-pki-entity-aaa] quit
# 创建并进入PKI域torsa。
[Device] pki domain torsa
# 配置设备信任的CA的名称为myca。
[Device-pki-domain-torsa] ca identifier myca
# 配置注册受理机构服务器的URL,格式为http://host:port/Issuing Jurisdiction ID。其中的Issuing Jurisdiction ID为CA服务器上生成的16进制字符串。
[Device-pki-domain-torsa] certificate request url http://1.1.2.22:446/80f6214aa8865301d07929ae481c7ceed99f95bd
# 配置证书申请的注册受理机构为CA。
[Device-pki-domain-torsa] certificate request from ca
# 指定PKI实体名称为aaa。
[Device-pki-domain-torsa] certificate request entity aaa
# 配置CRL发布点位置。
[Device-pki-domain-torsa] crl url ldap://1.1.2.22:389/CN=myca
· # 指定证书申请使用的密钥对,用途为通用,名称为abc,密钥对长度为1024比特。
[Device-pki-domain-torsa] public-key rsa general name abc length 1024
[Device-pki-domain-torsa] quit
· 生成RSA算法的本地密钥对
[Device] public-key local create rsa name abc
The range of public key modulus is (512 ~ 4096).
If the key modulus is greater than 512,it will take a few minutes.
Press CTRL+C to abort.
Input the modulus length [default = 1024]:
Generating Keys...
..........................++++++
.....................................++++++
Create the key pair successfully.
· 证书申请
# 获取CA证书并下载至本地。
[Device] pki retrieve-certificate domain torsa ca
The trusted CA's finger print is:
MD5 fingerprint:EDE9 0394 A273 B61A F1B3 0072 A0B1 F9AB
SHA1 fingerprint: 77F9 A077 2FB8 088C 550B A33C 2410 D354 23B2 73A8
Is the finger print correct?(Y/N):y
Retrieved the certificates successfully.
# 手工申请本地证书。(采用RSA Keon CA服务器申请证书时,必须指定password参数)
[Device] pki request-certificate domain torsa password 1111
Start to request general certificate ...
……
Certificate requested successfully.
# 通过以下显示命令可以查看申请到的本地证书信息。
[Device] display pki certificate domain torsa local
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
15:79:75:ec:d2:33:af:5e:46:35:83:bc:bd:6e:e3:b8
Signature Algorithm: sha1WithRSAEncryption
Issuer: CN=myca
Validity
Not Before: Jan 6 03:10:58 2013 GMT
Not After : Jan 6 03:10:58 2014 GMT
Subject: CN=Device
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (1024 bit)
Modulus:
00:ab:45:64:a8:6c:10:70:3b:b9:46:34:8d:eb:1a:
a1:b3:64:b2:37:27:37:9d:15:bd:1a:69:1d:22:0f:
3a:5a:64:0c:8f:93:e5:f0:70:67:dc:cd:c1:6f:7a:
0c:b1:57:48:55:81:35:d7:36:d5:3c:37:1f:ce:16:
7e:f8:18:30:f6:6b:00:d6:50:48:23:5c:8c:05:30:
6f:35:04:37:1a:95:56:96:21:95:85:53:6f:f2:5a:
dc:f8:ec:42:4a:6d:5c:c8:43:08:bb:f1:f7:46:d5:
f1:9c:22:be:f3:1b:37:73:44:f5:2d:2c:5e:8f:40:
3e:36:36:0d:c8:33:90:f3:9b
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 CRL Distribution Points:
Full Name:
DirName: CN = myca
Signature Algorithm: sha1WithRSAEncryption
b0:9d:d9:ac:a0:9b:83:99:bf:9d:0a:ca:12:99:58:60:d8:aa:
73:54:61:4b:a2:4c:09:bb:9f:f9:70:c7:f8:81:82:f5:6c:af:
25:64:a5:99:d1:f6:ec:4f:22:e8:6a:96:58:6c:c9:47:46:8c:
f1:ba:89:b8:af:fa:63:c6:c9:77:10:45:0d:8f:a6:7f:b9:e8:
25:90:4a:8e:c6:cc:b8:1a:f8:e0:bc:17:e0:6a:11:ae:e7:36:
87:c4:b0:49:83:1c:79:ce:e2:a3:4b:15:40:dd:fe:e0:35:52:
ed:6d:83:31:2c:c2:de:7c:e0:a7:92:61:bc:03:ab:40:bd:69:
1b:f5
关于获取到的CA证书的详细信息可以通过相应的显示命令来查看,此处略。具体内容请参考命令display pki certificate domain。
配置PKI实体Device向CA服务器申请本地证书。
图1-4 PKI实体向CA申请证书组网图
(1) 配置CA服务器
· 安装证书服务器组件
打开[控制面板]/[添加/删除程序],选择[添加/删除Windows组件]中的“证书服务”进行安装。安装过程中设置CA的名称,该名称为信任的CA的名称(本例中为myca)。
· 安装SCEP插件
由于Windows 2003 server作为CA服务器时,缺省情况下不支持SCEP,所以需要安装SCEP插件,才能使设备具备证书自动注册、获取等功能。插件安装完毕后,弹出提示框,提示框中的URL地址即为设备上配置的注册服务器地址。
· 修改证书服务的属性
完成上述配置后,打开[控制面板/管理工具]中的[证书颁发机构],如果安装成功,在[颁发的证书]中将存在两个CA颁发给RA的证书。选择[CA server 属性]中的“策略模块”的属性为“如果可以的话,按照证书模板中的设置。否则,将自动颁发证书(F)。”
· 修改IIS服务的属性
打开[控制面板/管理工具]中的[Internet 信息服务(IIS)管理器],将[默认网站 属性]中“主目录”的本地路径修改为证书服务保存的路径。另外,为了避免与已有的服务冲突,建议修改默认网站的TCP端口号为未使用的端口号(本例中为8080)。
以上配置完成之后,还需要保证设备的系统时钟与CA的时钟同步才可以正常使用设备来申请证书。
(2) 配置Device
· 配置PKI实体
# 配置PKI实体名称为aaa,通用名为test。
<Device> system-view
[Device] pki entity aaa
[Device-pki-entity-aaa] common-name test
[Device-pki-entity-aaa] quit
· 配置PKI域
# 创建并进入PKI域winserver。
[Device] pki domain winserver
# 配置设备信任的CA的名称为myca。
[Device-pki-domain-winserver] ca identifier myca
# 配置注册受理机构服务器的URL,格式为http://host:port/certsrv/mscep/mscep.dll。其中,host:port为CA服务器的主机地址和端口号。
[Device-pki-domain-winserver] certificate request url http://4.4.4.1:8080/certsrv/mscep/mscep.dll
# 配置证书申请的注册受理机构为RA。
[Device-pki-domain-winserver] certificate request from ra
# 指定PKI实体名称为aaa。
[Device-pki-domain-winserver] certificate request entity aaa
· # 指定证书申请使用的密钥对,用途为通用,名称为abc,密钥长度为1024比特。
[Device-pki-domain-winserver] public-key rsa general name abc length 1024
[Device-pki-domain-winserver] quit
· 生成RSA算法的本地密钥对
[Device] public-key local create rsa name abc
The range of public key modulus is (512 ~ 4096).
If the key modulus is greater than 512,it will take a few minutes.
Press CTRL+C to abort.
Input the modulus length [default = 1024]:
Generating Keys...
..........................++++++
.....................................++++++
Create the key pair successfully.
· 证书申请
# 获取CA证书并下载至本地。
[Device] pki retrieve-certificate domain winserver ca
The trusted CA's finger print is:
MD5 fingerprint:766C D2C8 9E46 845B 4DCE 439C 1C1F 83AB
SHA1 fingerprint:97E5 DDED AB39 3141 75FB DB5C E7F8 D7D7 7C9B 97B4
Is the finger print correct?(Y/N):y
Retrieved the certificates successfully.
# 手工申请本地证书。
[Device] pki request-certificate domain winserver
Start to request general certificate ...
……
Certificate requested successfully.
# 通过以下显示命令可以查看申请到的本地证书信息。
[Device] display pki certificate domain winserver local
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
(Negative)01:03:99:ff:ff:ff:ff:fd:11
Signature Algorithm: sha1WithRSAEncryption
Issuer: CN=sec
Validity
Not Before: Dec 24 07:09:42 2012 GMT
Not After : Dec 24 07:19:42 2013 GMT
Subject: CN=test
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:c3:b5:23:a0:2d:46:0b:68:2f:71:d2:14:e1:5a:
55:6e:c5:5e:26:86:c1:5a:d6:24:68:02:bf:29:ac:
dc:31:41:3f:5d:5b:36:9e:53:dc:3a:bc:0d:11:fb:
d6:7d:4f:94:3c:c1:90:4a:50:ce:db:54:e0:b3:27:
a9:6a:8e:97:fb:20:c7:44:70:8f:f0:b9:ca:5b:94:
f0:56:a5:2b:87:ac:80:c5:cc:04:07:65:02:39:fc:
db:61:f7:07:c6:65:4c:e4:5c:57:30:35:b4:2e:ed:
9c:ca:0b:c1:5e:8d:2e:91:89:2f:11:e3:1e:12:8a:
f8:dd:f8:a7:2a:94:58:d9:c7:f8:1a:78:bd:f5:42:
51:3b:31:5d:ac:3e:c3:af:fa:33:2c:fc:c2:ed:b9:
ee:60:83:b3:d3:e5:8e:e5:02:cf:b0:c8:f0:3a:a4:
b7:ac:a0:2c:4d:47:5f:39:4b:2c:87:f2:ee:ea:d0:
c3:d0:8e:2c:80:83:6f:39:86:92:98:1f:d2:56:3b:
d7:94:d2:22:f4:df:e3:f8:d1:b8:92:27:9c:50:57:
f3:a1:18:8b:1c:41:ba:db:69:07:52:c1:9a:3d:b1:
2d:78:ab:e3:97:47:e2:70:14:30:88:af:f8:8e:cb:
68:f9:6f:07:6e:34:b6:38:6a:a2:a8:29:47:91:0e:
25:39
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Key Usage:
Digital Signature, Non Repudiation, Key Encipherment, Data Encip
herment
X509v3 Subject Key Identifier:
C9:BB:D5:8B:02:1D:20:5B:40:94:15:EC:9C:16:E8:9D:6D:FD:9F:34
X509v3 Authority Key Identifier:
keyid:32:F1:40:BA:9E:F1:09:81:BD:A8:49:66:FF:F8:AB:99:4A:30:21:9
B
X509v3 CRL Distribution Points:
Full Name:
URI:file://\\g07904c\CertEnroll\sec.crl
Authority Information Access:
CA Issuers - URI:http://gc/CertEnroll/gc_sec.crt
CA Issuers - URI:file://\\gc\CertEnroll\gc_sec.crt
1.3.6.1.4.1.311.20.2:
.0.I.P.S.E.C.I.n.t.e.r.m.e.d.i.a.t.e.O.f.f.l.i.n.e
Signature Algorithm: sha1WithRSAEncryption
76:f0:6c:2c:4d:bc:22:59:a7:39:88:0b:5c:50:2e:7a:5c:9d:
6c:28:3c:c0:32:07:5a:9c:4c:b6:31:32:62:a9:45:51:d5:f5:
36:8f:47:3d:47:ae:74:6c:54:92:f2:54:9f:1a:80:8a:3f:b2:
14:47:fa:dc:1e:4d:03:d5:d3:f5:9d:ad:9b:8d:03:7f:be:1e:
29:28:87:f7:ad:88:1c:8f:98:41:9a:db:59:ba:0a:eb:33:ec:
cf:aa:9b:fc:0f:69:3a:70:f2:fa:73:ab:c1:3e:4d:12:fb:99:
31:51:ab:c2:84:c0:2f:e5:f6:a7:c3:20:3c:9a:b0:ce:5a:bc:
0f:d9:34:56:bc:1e:6f:ee:11:3f:7c:b2:52:f9:45:77:52:fb:
46:8a:ca:b7:9d:02:0d:4e:c3:19:8f:81:46:4e:03:1f:58:03:
bf:53:c6:c4:85:95:fb:32:70:e6:1b:f3:e4:10:ed:7f:93:27:
90:6b:30:e7:81:36:bb:e2:ec:f2:dd:2b:bb:b9:03:1c:54:0a:
00:3f:14:88:de:b8:92:63:1e:f5:b3:c2:cf:0a:d5:f4:80:47:
6f:fa:7e:2d:e3:a7:38:46:f6:9e:c7:57:9d:7f:82:c7:46:06:
7d:7c:39:c4:94:41:bd:9e:5c:97:86:c8:48:de:35:1e:80:14:
02:09:ad:08
关于获取到的CA证书的详细信息可以通过相应的显示命令来查看,此处略。具体内容请参考命令display pki certificate domain。
配置PKI实体Device向CA服务器申请本地证书。
图1-5 PKI实体向CA申请证书组网图
(1) 配置CA服务器
配置过程略,具体请参考Open CA服务器的相关手册。
需要注意的是:
· 使用OpenCA最新版本的rpm包进行安装,OpenCA有多个版本,但只有0.9.2以后的版本才支持SCEP,至少要安装0.9.2以后的版本。
· OpenCA服务器配置完成之后,还需要保证设备的系统时钟与CA的时钟同步才可以正常使用设备来申请证书。
(2) 配置Device
· 配置PKI实体
# 配置PKI实体,名称为aaa、通用名为rnd、国家码为CN、组织名为test、组织部门名为software。
<Device> system-view
[Device] pki entity aaa
[Device-pki-entity-aaa] common-name rnd
[Device-pki-entity-aaa] country CN
[Device-pki-entity-aaa] organization test
[Device-pki-entity-aaa] organization-unit software
[Device-pki-entity-aaa] quit
· 配置PKI域
# 创建并进入PKI域openca。
[Device] pki domain openca
# 配置设备信任的CA的名称为myca。
[Device-pki-domain-openca] ca identifier myca
# 配置注册受理机构服务器的URL。通常,格式为http://host/cgi-bin/pki/scep。其中,host为OpenCA服务器的主机地址。
[Device-pki-domain-openca] certificate request url http://192.168.222.218/cgi-bin/pki/scep
# 配置证书申请的注册受理机构为RA。
[Device-pki-domain-openca] certificate request from ra
# 指定PKI实体名称为aaa。
[Device-pki-domain-openca] certificate request entity aaa
· # 指定证书申请使用的RSA密钥对,用途为通用,名称为abc,密钥长度为1024比特。
[Device-pki-domain-openca] public-key rsa general name abc length 1024
[Device-pki-domain-openca] quit
· 生成RSA算法的本地密钥对
[Device] public-key local create rsa name abc
The range of public key modulus is (512 ~ 4096).
If the key modulus is greater than 512,it will take a few minutes.
Press CTRL+C to abort.
Input the modulus length [default = 1024]:
Generating Keys...
..........................++++++
.....................................++++++
Create the key pair successfully.
· 证书申请
# 获取CA证书并下载至本地。
[Device] pki retrieve-certificate domain openca ca
The trusted CA's finger print is:
MD5 fingerprint:5AA3 DEFD 7B23 2A25 16A3 14F4 C81C C0FA
SHA1 fingerprint:9668 4E63 D742 4B09 90E0 4C78 E213 F15F DC8E 9122
Is the finger print correct?(Y/N):y
Retrieved the certificates successfully.
# 手工申请本地证书。
[Device] pki request-certificate domain openca
Start to request general certificate ...
……
Certificate requested successfully.
# 通过以下显示命令可以查看申请到的本地证书信息。
[Device] display pki certificate domain openca local
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
21:1d:b8:d2:e4:a9:21:28:e4:de
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=CN, L=shangdi, ST=pukras, O=OpenCA Labs, OU=mysubUnit, CN=sub-ca, DC=pki-subdomain, DC=mydomain-sub, DC=com
Validity
Not Before: Jun 30 09:09:09 2011 GMT
Not After : May 1 09:09:09 2012 GMT
Subject: CN=rnd, O=test, OU=software, C=CN
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (1024 bit)
Modulus:
00:b8:7a:9a:b8:59:eb:fc:70:3e:bf:19:54:0c:7e:
c3:90:a5:d3:fd:ee:ff:c6:28:c6:32:fb:04:6e:9c:
d6:5a:4f:aa:bb:50:c4:10:5c:eb:97:1d:a7:9e:7d:
53:d5:31:ff:99:ab:b6:41:f7:6d:71:61:58:97:84:
37:98:c7:7c:79:02:ac:a6:85:f3:21:4d:3c:8e:63:
8d:f8:71:7d:28:a1:15:23:99:ed:f9:a1:c3:be:74:
0d:f7:64:cf:0a:dd:39:49:d7:3f:25:35:18:f4:1c:
59:46:2b:ec:0d:21:1d:00:05:8a:bf:ee:ac:61:03:
6c:1f:35:b5:b4:cd:86:9f:45
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Cert Type:
SSL Client, S/MIME
X509v3 Key Usage:
Digital Signature, Non Repudiation, Key Encipherment
X509v3 Extended Key Usage:
TLS Web Client Authentication, E-mail Protection, Microsoft Smartcardlogin
Netscape Comment:
User Certificate of OpenCA Labs
X509v3 Subject Key Identifier:
24:71:C9:B8:AD:E1:FE:54:9A:EA:E9:14:1B:CD:D9:45:F4:B2:7A:1B
X509v3 Authority Key Identifier:
keyid:85:EB:D5:F7:C9:97:2F:4B:7A:6D:DD:1B:4D:DD:00:EE:53:CF:FD:5B
X509v3 Issuer Alternative Name:
DNS:root@docm.com, DNS:, IP Address:192.168.154.145, IP Address:192.168.154.138
Authority Information Access:
CA Issuers - URI:http://192.168.222.218/pki/pub/cacert/cacert.crt
OCSP - URI:http://192.168.222.218:2560/
1.3.6.1.5.5.7.48.12 - URI:http://192.168.222.218:830/
X509v3 CRL Distribution Points:
Full Name:
URI:http://192.168.222.218/pki/pub/crl/cacrl.crl
Signature Algorithm: sha256WithRSAEncryption
5c:4c:ba:d0:a1:35:79:e6:e5:98:69:91:f6:66:2a:4f:7f:8b:
0e:80:de:79:45:b9:d9:12:5e:13:28:17:36:42:d5:ae:fc:4e:
ba:b9:61:f1:0a:76:42:e7:a6:34:43:3e:2d:02:5e:c7:32:f7:
6b:64:bb:2d:f5:10:6c:68:4d:e7:69:f7:47:25:f5:dc:97:af:
ae:33:40:44:f3:ab:e4:5a:a0:06:8f:af:22:a9:05:74:43:b6:
e4:96:a5:d4:52:32:c2:a8:53:37:58:c7:2f:75:cf:3e:8e:ed:
46:c9:5a:24:b1:f5:51:1d:0f:5a:07:e6:15:7a:02:31:05:8c:
03:72:52:7c:ff:28:37:1e:7e:14:97:80:0b:4e:b9:51:2d:50:
98:f2:e4:5a:60:be:25:06:f6:ea:7c:aa:df:7b:8d:59:79:57:
8f:d4:3e:4f:51:c1:34:e6:c1:1e:71:b5:0d:85:86:a5:ed:63:
1e:08:7f:d2:50:ac:a0:a3:9e:88:48:10:0b:4a:7d:ed:c1:03:
9f:87:97:a3:5e:7d:75:1d:ac:7b:6f:bb:43:4d:12:17:9a:76:
b0:bf:2f:6a:cc:4b:cd:3d:a1:dd:e0:dc:5a:f3:7c:fb:c3:29:
b0:12:49:5c:12:4c:51:6e:62:43:8b:73:b9:26:2a:f9:3d:a4:
81:99:31:89
关于获取到的CA证书的详细信息可以通过相应的显示命令来查看,此处略。具体内容请参考命令display pki certificate domain。
· 在Device A和Device B之间建立一个IPsec安全隧道对子网10.1.1.0/24上的主机A与子网11.1.1.0/24上的主机B之间的数据流进行安全保护。
· 在Device A和Device B之间使用IKE自动协商建立安全通信,IKE认证策略采用RSA数字签名方法进行身份认证。
· Device A和Device B使用相同的CA。
图1-6 使用RSA数字签名方法进行IKE协商认证组网图
(1) 配置CA服务器
本例CA server采用Windows 2003 server CA服务器,CA服务器配置参看“1.15.2 3. (1)”。
(2) 配置Device A
# 配置PKI实体。
<DeviceA> system-view
[DeviceA] pki entity en
[DeviceA-pki-entity-en] ip 2.2.2.1
[DeviceA-pki-entity-en] common-name devicea
[DeviceA-pki-entity-en] quit
# 配置PKI域参数。
[DeviceA] pki domain 1
[DeviceA-pki-domain-1] ca identifier CA1
[DeviceA-pki-domain-1] certificate request url http://1.1.1.100/certsrv/mscep/mscep.dll
[DeviceA-pki-domain-1] certificate request entity en
[DeviceA-pki-domain-1] ldap-server host 1.1.1.102
# 配置通过RA注册申请证书。
[DeviceA-pki-domain-1] certificate request from ra
# 指定证书申请使用的RSA密钥对,用途为通用,名称为abc,密钥长度为1024比特。
[DeviceA-pki-domain-1] public-key rsa general name abc length 1024
[DeviceA-pki-domain-1] quit
# 生成RSA算法的本地密钥对。
[DeviceA] public-key local create rsa name abc
The range of public key modulus is (512 ~ 4096).
If the key modulus is greater than 512,it will take a few minutes.
Press CTRL+C to abort.
Input the modulus length [default = 1024]:
Generating Keys...
..........................++++++
.....................................++++++
Create the key pair successfully.
# 获取CA证书并下载至本地。
[DeviceA] pki retrieve-certificate domain 1 ca
The trusted CA's finger print is:
MD5 fingerprint:5C41 E657 A0D6 ECB4 6BD6 1823 7473 AABC
SHA1 fingerprint:1616 E7A5 D89A 2A99 9419 1C12 D696 8228 87BC C266
Is the finger print correct?(Y/N):y
Retrieved the certificates successfully.
# 手工申请本地证书。
[DeviceA] pki request-certificate domain 1
# 配置IKE提议1,使用数字签名(rsa-signature)方法为身份认证策略。
[DeviceA] ike proposal 1
[DeviceA-ike-proposal-1] authentication-method rsa-signature
[DeviceA-ike-proposal-1] quit
# 在IKE profile 1中指定IKE协商使用的PKI域。
[DeviceA] ike profile peer
[DeviceA-ike-profile-peer] certificate domain 1
(3) 配置Device B
# 配置PKI实体。
<DeviceB> system-view
[DeviceB] pki entity en
[DeviceB-pki-entity-en] ip 3.3.3.1
[DeviceB-pki-entity-en] common-name deviceb
[DeviceB-pki-entity-en] quit
# 配置PKI域参数。(证书申请的注册机构服务器的URL根据所使用的CA服务器的不同而有所不同,这里的配置只作为示例,请根据具体情况配置。)
[DeviceB] pki domain 1
[DeviceB-pki-domain-1] ca identifier CA1
[DeviceB-pki-domain-1] certificate request url http://1.1.1.100/certsrv/mscep/mscep.dll
[DeviceB-pki-domain-1] certificate request entity en
[DeviceB-pki-domain-1] ldap-server host 1.1.1.102
# 配置通过RA注册申请证书。
[DeviceB-pki-domain-1] certificate request from ra
# 指定证书申请使用的RSA密钥对,用途为通用,名称为abc,密钥长度为1024比特。
[DeviceB-pki-domain-1] public-key rsa general name abc length 1024
[DeviceB-pki-domain-1] quit
# 生成RSA算法的本地密钥对。
[DeviceB] public-key local create rsa name abc
The range of public key modulus is (512 ~ 4096).
If the key modulus is greater than 512,it will take a few minutes.
Press CTRL+C to abort.
Input the modulus length [default = 1024]:
Generating Keys...
..........................++++++
.....................................++++++
Create the key pair successfully.
# 获取CA证书并下载至本地。
[DeviceB] pki retrieve-certificate ca domain 1
Retrieved the certificates successfully.
# 手工申请本地证书。
[DeviceB] pki request-certificate domain 1
Start to request general certificate ...
...
Certificate requested successfully.
# 配置IKE提议1,使用rsa-signature方法为身份认证策略。
[DeviceB] ike proposal 1
[DeviceB-ike-proposal-1] authentication-method rsa-signature
[DeviceB-ike-proposal-1] quit
# 在IKE profile 1中指定IKE协商使用的PKI域。
[DeviceB] ike profile peer
[DeviceB-ike-profile-peer] certificate domain 1
· 客户端通过HTTPS协议远程访问设备(HTTPS服务器)。
· 通过SSL协议保证合法客户端安全登录HTTPS服务器。
· HTTPS服务器要求对客户端进行身份验证,并通过制定证书访问控制策略,对客户端的证书合法性进行检测。
图1-7 证书属性的访问控制策略应用组网图
· SSL策略所引用的PKI域domain1必须首先创建。
· Device上也需要申请一个本地证书作为SSL服务器端证书。
(1) 配置HTTPS服务器
# 配置HTTPS服务器使用的SSL策略。
<Device> system-view
[Device] ssl server-policy abc
[Device-ssl-server-policy-abc] pki-domain domain1
[Device-ssl-server-policy-abc] client-verify enable
[Device-ssl-server-policy-abc] quit
# 配置HTTPS服务使用的SSL策略为abc。
[Device] ip https ssl-server-policy abc
# 开启HTTPS服务。
[Device] ip https enable
(2) 配置证书属性组
# 配置证书属性组mygroup1,并创建两个属性规则。规则1定义证书主题名的DN包含字符串aabbcc;规则2定义证书颁发者名中的IP地址等于10.0.0.1。
[Device] pki certificate attribute-group mygroup1
[Device-pki-cert-attribute-group-mygroup1] attribute 1 subject-name dn ctn aabbcc
[Device-pki-cert-attribute-group-mygroup1] attribute 2 issuer-name ip equ 10.0.0.1
[Device-pki-cert-attribute-group-mygroup1] quit
# 配置证书属性组mygroup2,并创建两个属性规则。规则1定义证书备用主题名中的FQDN不包含字符串apple;规则2定义证书颁发者名的DN包含字符串aabbcc。
[Device] pki certificate attribute-group mygroup2
[Device-pki-cert-attribute-group-mygroup2] attribute 1 alt-subject-name fqdn nctn apple
[Device-pki-cert-attribute-group-mygroup2] attribute 2 issuer-name dn ctn aabbcc
[Device-pki-cert-attribute-group-mygroup2] quit
(3) 配置证书访问控制策略
# 创建访问控制策略myacp,并定义两个访问控制规则。
[Device] pki certificate access-control-policy myacp
# 规则1定义,当证书的属性与属性组mygroup1里定义的属性匹配时,认为该证书无效,不能通过访问控制策略的检测。
[Device-pki-cert-acp-myacp] rule 1 deny mygroup1
# 规则2定义,当证书的属性与属性组mygroup2里定义的属性匹配时,认为该证书有效,可以通过访问控制策略的检测。
[Device-pki-cert-acp-myacp] rule 2 permit mygroup2
[Device-pki-cert-acp-myacp] quit
当客户端通过浏览器访问HTTPS服务器时,服务器端首先根据配置的证书访问控制策略检测客户端证书的有效性。已知该客户端证书的主题名的DN为aabbcc,颁发者名中的IP地址为1.1.1.1,备用主题名中的FQDN名为banaba,由以上配置可判断匹配结果为:
· 本地证书的主题名和属性组mygroup1中的属性1匹配、颁发者名和属性组mygroup1中的属性2不匹配,因此该证书和证书属性组mygroup1不匹配。
· 本地证书的备用主题名属性和属性组mygroup2中的属性1匹配,颁发者名属性和属性组mygroup2中的属性2匹配,因此该证书和证书属性组mygroup2匹配。
该客户端的证书与访问控制策略myacp的规则1所引用的证书属性组mygroup1不匹配,因此规则1不生效;本地证书与访问控制策略myacp的规则2所引用的证书属性组mygroup2匹配,因此规则2生效,该证书可以通过访问控制策略myacp的检测。
通过以上检测后的合法客户端可以成功访问HTTPS服务器提供的网页。
某网络中的Device A将要被Device B替换,Device A上的PKI域exportdomain中保存了两个携带私钥的本地证书和一个CA证书。为保证替换后的证书可用,需要将原来Device A上的证书复制到Device B上去。具体要求如下:
· 从Device A上导出本地证书时,将对应的私钥数据采用3DES_CBC算法进行加密,加密口令为111111。
· 来自Device A的证书以PEM编码的格式保存于Device B上的PKI域importdomain中。
图1-8 导出、导入证书应用组网图
(1) 从Device A上导出本地证书到指定文件
# 将PKI域中的CA证书导出到PEM格式的文件中,文件名为pkicachain.pem。
<DeviceA> system-view
[DeviceA] pki export domain exportdomain pem ca filename pkicachain.pem
# 将PKI域中的本地证书导出到PEM格式的文件中,文件名为pkilocal.pem。导出时对本地证书对应的私钥数据采用3DES_CBC算法进行加密,加密口令为111111。
[DeviceA] pki export domain exportdomain pem local 3des-cbc 111111 filename pkilocal.pem
以上过程完成后,系统中将会生成三个PEM格式的证书文件,它们分别是:CA证书文件pkicachain.pem,带有私钥的本地签名证书文件pkilocal.pem-signature和带有私钥的本地加密证书文件pkilocal.pem-encryption。
# 查看PEM格式的带有私钥的本地签名证书文件pkilocal.pem-signature。
[DeviceA] quit
<DeviceA> more pkilocal.pem-signature
Bag Attributes
friendlyName:
localKeyID: 90 C6 DC 1D 20 49 4F 24 70 F5 17 17 20 2B 9E AC 20 F3 99 89
subject=/C=CN/O=OpenCA Labs/OU=Users/CN=subsign 11
issuer=/C=CN/L=shangdi/ST=pukras/O=OpenCA Labs/OU=docm/CN=subca1
-----BEGIN CERTIFICATE-----
MIIEgjCCA2qgAwIBAgILAJgsebpejZc5UwAwDQYJKoZIhvcNAQELBQAwZjELMAkG
…… (略)
-----END CERTIFICATE-----
Bag Attributes
friendlyName:
localKeyID: 90 C6 DC 1D 20 49 4F 24 70 F5 17 17 20 2B 9E AC 20 F3 99 89
Key Attributes: <No Attributes>
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIZtjSjfslJCoCAggA
…… (略)
-----END ENCRYPTED PRIVATE KEY-----
# 查看PEM格式的带有私钥的本地加密证书文件pkilocal.pem-encryption。
<DeviceA> more pkilocal.pem-encryption
Bag Attributes
friendlyName:
localKeyID: D5 DF 29 28 C8 B9 D9 49 6C B5 44 4B C2 BC 66 75 FE D6 6C C8
subject=/C=CN/O=OpenCA Labs/OU=Users/CN=subencr 11
issuer=/C=CN/L=shangdi/ST=pukras/O=OpenCA Labs/OU=docm/CN=subca1
-----BEGIN CERTIFICATE-----
MIIEUDCCAzigAwIBAgIKCHxnAVyzWhIPLzANBgkqhkiG9w0BAQsFADBmMQswCQYD
…… (略)
-----END CERTIFICATE-----
Bag Attributes
friendlyName:
localKeyID: D5 DF 29 28 C8 B9 D9 49 6C B5 44 4B C2 BC 66 75 FE D6 6C C8
Key Attributes: <No Attributes>
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQI7H0mb4O7/GACAggA
…… (略)
-----END ENCRYPTED PRIVATE KEY-----
(2) 将Device A的证书文件下载到Host
通过FTP将证书文件pkicachain.pem、pkilocal.pem-signature和pkilocal.pem-encryption下载到Host上,具体过程略。
(3) 将Host上的证书文件上传到Device B
通过FTP将证书文件pkicachain.pem、pkilocal.pem-signature、pkilocal.pem-encryption上传到Device B的文件系统中,具体过程略。
(4) 在设备Device B上导入证书文件
# 关闭CRL检查。(是否进行CRL检查,请以实际的使用需求为准,此处仅为示例)
<DeviceB> system-view
[DeviceB] pki domain importdomain
[DeviceB-pki-domain-importdomain] undo crl check enable
# 指定证书申请使用的签名RSA密钥对名称为sign,加密RSA密钥对名称为encr。
[DeviceB-pki-domain-importdomain] public-key rsa signature name sign encryption name encr
[DeviceB-pki-domain-importdomain] quit
# 向PKI域中导入CA证书,证书文件格式为PEM编码,证书文件名称为pkicachain.pem。
[DeviceB] pki import domain importdomain pem ca filename pkicachain.pem
# 向PKI域中导入本地证书,证书文件格式为PEM编码,证书文件名称为pkilocal.pem-signature,证书文件中包含了密钥对。
[DeviceB] pki import domain importdomain pem local filename pkilocal.pem-signature
Please input the password:******
# 向PKI域中导入本地证书,证书文件格式为PEM编码,证书文件名称为pkilocal.pem-encryption,证书文件中包含了密钥对。
[DeviceB] pki import domain importdomain pem local filename pkilocal.pem-encryption
Please input the password:******
# 通过以下显示命令可以查看导入到Device B的本地证书信息。
[DeviceB] display pki certificate domain importdomain local
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
98:2c:79:ba:5e:8d:97:39:53:00
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=CN, L=shangdi, ST=pukras, O=OpenCA Labs, OU=docm, CN=subca1
Validity
Not Before: May 26 05:56:49 2011 GMT
Not After : Nov 22 05:56:49 2012 GMT
Subject: C=CN, O=OpenCA Labs, OU=Users, CN=subsign 11
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (1024 bit)
Modulus:
00:9f:6e:2f:f6:cb:3d:08:19:9a:4a:ac:b4:ac:63:
ce:8d:6a:4c:3a:30:19:3c:14:ff:a9:50:04:f5:00:
ee:a3:aa:03:cb:b3:49:c4:f8:ae:55:ee:43:93:69:
6c:bf:0d:8c:f4:4e:ca:69:e5:3f:37:5c:83:ea:83:
ad:16:b8:99:37:cb:86:10:6b:a0:4d:03:95:06:42:
ef:ef:0d:4e:53:08:0a:c9:29:dd:94:28:02:6e:e2:
9b:87:c1:38:2d:a4:90:a2:13:5f:a4:e3:24:d3:2c:
bf:98:db:a7:c2:36:e2:86:90:55:c7:8c:c5:ea:12:
01:31:69:bf:e3:91:71:ec:21
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Cert Type:
SSL Client, S/MIME
X509v3 Key Usage:
Digital Signature, Non Repudiation
X509v3 Extended Key Usage:
TLS Web Client Authentication, E-mail Protection, Microsoft Smartcardlogin
Netscape Comment:
User Certificate of OpenCA Labs
X509v3 Subject Key Identifier:
AA:45:54:29:5A:50:2B:89:AB:06:E5:BD:0D:07:8C:D9:79:35:B1:F5
X509v3 Authority Key Identifier:
keyid:70:54:40:61:71:31:02:06:8C:62:11:0A:CC:A5:DB:0E:7E:74:DE:DD
X509v3 Subject Alternative Name:
email:subsign@docm.com
X509v3 Issuer Alternative Name:
DNS:subca1@docm.com, DNS:, IP Address:1.1.2.2, IP Address:2.2.1.1
Authority Information Access:
CA Issuers - URI:http://titan/pki/pub/cacert/cacert.crt
OCSP - URI:http://titan:2560/
1.3.6.1.5.5.7.48.12 - URI:http://titan:830/
X509v3 CRL Distribution Points:
Full Name:
URI:http://192.168.40.130/pki/pub/crl/cacrl.crl
Signature Algorithm: sha256WithRSAEncryption
18:e7:39:9a:ad:84:64:7b:a3:85:62:49:e5:c9:12:56:a6:d2:
46:91:53:8e:84:ba:4a:0a:6f:28:b9:43:bc:e7:b0:ca:9e:d4:
1f:d2:6f:48:c4:b9:ba:c5:69:4d:90:f3:15:c4:4e:4b:1e:ef:
2b:1b:2d:cb:47:1e:60:a9:0f:81:dc:f2:65:6b:5f:7a:e2:36:
29:5d:d4:52:32:ef:87:50:7c:9f:30:4a:83:de:98:8b:6a:c9:
3e:9d:54:ee:61:a4:26:f3:9a:40:8f:a6:6b:2b:06:53:df:b6:
5f:67:5e:34:c8:c3:b5:9b:30:ee:01:b5:a9:51:f9:b1:29:37:
02:1a:05:02:e7:cc:1c:fe:73:d3:3e:fa:7e:91:63:da:1d:f1:
db:28:6b:6c:94:84:ad:fc:63:1b:ba:53:af:b3:5d:eb:08:b3:
5b:d7:22:3a:86:c3:97:ef:ac:25:eb:4a:60:f8:2b:a3:3b:da:
5d:6f:a5:cf:cb:5a:0b:c5:2b:45:b7:3e:6e:39:e9:d9:66:6d:
ef:d3:a0:f6:2a:2d:86:a3:01:c4:94:09:c0:99:ce:22:19:84:
2b:f0:db:3e:1e:18:fb:df:56:cb:6f:a2:56:35:0d:39:94:34:
6d:19:1d:46:d7:bf:1a:86:22:78:87:3e:67:fe:4b:ed:37:3d:
d6:0a:1c:0b
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
08:7c:67:01:5c:b3:5a:12:0f:2f
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=CN, L=shangdi, ST=pukras, O=OpenCA Labs, OU=docm, CN=subca1
Validity
Not Before: May 26 05:58:26 2011 GMT
Not After : Nov 22 05:58:26 2012 GMT
Subject: C=CN, O=OpenCA Labs, OU=Users, CN=subencr 11
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (1024 bit)
Modulus:
00:db:26:13:d3:d1:a4:af:11:f3:6d:37:cf:d0:d4:
48:50:4e:0f:7d:54:76:ed:50:28:c6:71:d4:48:ae:
4d:e7:3d:23:78:70:63:18:33:f6:94:98:aa:fa:f6:
62:ed:8a:50:c6:fd:2e:f4:20:0c:14:f7:54:88:36:
2f:e6:e2:88:3f:c2:88:1d:bf:8d:9f:45:6c:5a:f5:
94:71:f3:10:e9:ec:81:00:28:60:a9:02:bb:35:8b:
bf:85:75:6f:24:ab:26:de:47:6c:ba:1d:ee:0d:35:
75:58:10:e5:e8:55:d1:43:ae:85:f8:ff:75:81:03:
8c:2e:00:d1:e9:a4:5b:18:39
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Cert Type:
SSL Server
X509v3 Key Usage:
Key Encipherment, Data Encipherment
Netscape Comment:
VPN Server of OpenCA Labs
X509v3 Subject Key Identifier:
CC:96:03:2F:FC:74:74:45:61:38:1F:48:C0:E8:AA:18:24:F0:2B:AB
X509v3 Authority Key Identifier:
keyid:70:54:40:61:71:31:02:06:8C:62:11:0A:CC:A5:DB:0E:7E:74:DE:DD
X509v3 Subject Alternative Name:
email:subencr@docm.com
X509v3 Issuer Alternative Name:
DNS:subca1@docm.com, DNS:, IP Address:1.1.2.2, IP Address:2.2.1.1
Authority Information Access:
CA Issuers - URI:http://titan/pki/pub/cacert/cacert.crt
OCSP - URI:http://titan:2560/
1.3.6.1.5.5.7.48.12 - URI:http://titan:830/
X509v3 CRL Distribution Points:
Full Name:
URI:http://192.168.40.130/pki/pub/crl/cacrl.crl
Signature Algorithm: sha256WithRSAEncryption
53:69:66:5f:93:f0:2f:8c:54:24:8f:a2:f2:f1:29:fa:15:16:
90:71:e2:98:e3:5c:c6:e3:d4:5f:7a:f6:a9:4f:a2:7f:ca:af:
c4:c8:c7:2c:c0:51:0a:45:d4:56:e2:81:30:41:be:9f:67:a1:
23:a6:09:50:99:a1:40:5f:44:6f:be:ff:00:67:9d:64:98:fb:
72:77:9e:fd:f2:4c:3a:b2:43:d8:50:5c:48:08:e7:77:df:fb:
25:9f:4a:ea:de:37:1e:fb:bc:42:12:0a:98:11:f2:d9:5b:60:
bc:59:72:04:48:59:cc:50:39:a5:40:12:ff:9d:d0:69:3a:5e:
3a:09:5a:79:e0:54:67:a0:32:df:bf:72:a0:74:63:f9:05:6f:
5e:28:d2:e8:65:49:e6:c7:b5:48:7d:95:47:46:c1:61:5a:29:
90:65:45:4a:88:96:e4:88:bd:59:25:44:3f:61:c6:b1:08:5b:
86:d2:4f:61:4c:20:38:1c:f4:a1:0b:ea:65:87:7d:1c:22:be:
b6:17:17:8a:5a:0f:35:4c:b8:b3:73:03:03:63:b1:fc:c4:f5:
e9:6e:7c:11:e8:17:5a:fb:39:e7:33:93:5b:2b:54:72:57:72:
5e:78:d6:97:ef:b8:d8:6d:0c:05:28:ea:81:3a:06:a0:2e:c3:
79:05:cd:c3
关于导入的CA证书的详细信息可以通过相应的显示命令来查看,此处略。具体内容请参考命令display pki certificate domain。
获取CA证书失败。
可能有以下原因:
· 网络连接故障,如网线折断,接口松动;
· 没有设置信任的CA名称;
· 证书申请的注册受理机构服务器URL位置不正确或未配置;
· 设备的系统时钟与CA的时钟不同步;
· 未指定CA服务器可接受的PKI协议报文的源IP地址,或者指定的地址不正确;
· 指纹信息不合法。
· 排除物理连接故障;
· 查看各必配项是否都正确配置;
· 可通过ping命令测试注册服务器是否连接正常;
· 保持系统时钟与CA同步;
· 与CA服务器管理员联系,并保证配置正确的源IP地址;
· 在证书服务器上查看指纹信息是否合法。
获取本地证书失败。
可能有以下原因:
· 网络连接故障;
· 执行获取操作之前PKI域中没有CA证书;
· 没有配置LDAP服务器或者配置错误;
· PKI域没有指定申请使用的密钥对,或者指定的密钥对与待获取的本地证书不匹配;
· PKI域中没有引用PKI实体配置,或PKI实体配置不正确;
· 开启了CRL检查,但是本地没有CRL且无法获取到CRL;
· 未指定CA服务器可接受的PKI协议报文的源IP地址,或者指定的地址不正确;
· 设备时钟与CA服务器的时钟不同步。
· 排除物理连接故障;
· 获取或者导入CA证书;
· 配置正确的LDAP服务器;
· 在PKI域中指定申请使用的密钥对,生成指定的密钥对,并使其与待获取的本地证书匹配;
· PKI域中引用正确的PKI实体,并正确配置该PKI实体;
· 获取CRL;
· 与CA服务器管理员联系,并保证配置正确的源IP地址;
· 保持系统时钟与CA一致。
手工申请证书失败。
可能有以下原因:
· 网络连接故障,如网线折断,接口松动;
· 执行申请操作之前PKI域中没有CA证书;
· 证书申请的注册受理机构服务器URL位置不正确或未配置;
· 没有配置证书申请注册受理机构或配置不正确;
· 没有配置PKI实体DN中必配参数或者配置参数不正确;
· PKI域中没有指定证书申请使用的密钥对,或者PKI中指定的密钥对在申请过程中已被修改;
· 当前PKI域中有互斥的证书申请程序正在运行;
· 未指定CA服务器可接受的PKI协议报文的源IP地址,或者指定的地址不正确;
· 设备时钟与CA服务器的时钟不同步。
· 排除物理连接故障;
· 获取或者导入CA证书;
· 可通过ping命令测试注册服务器是否连接正常;
· 配置正确的证书申请注册受理机构服务器URL;
· 查看CA/RA注册策略,并对相关的PKI实体DN属性进行正确配置;
· 在PKI域中指定证书申请使用的密钥对,或者删除设备上PKI域中指定的密钥对并重新申请本地证书;
· 使用pki abort-certificate- request domain命令停止正在运行的证书申请程序;
· 与CA服务器管理员联系,并保证配置正确的源IP地址;
· 保持系统时钟与CA一致。
获取CRL失败。
可能有以下原因:
· 网络连接故障,如网线折断,接口松动;
· 获取CRL之前未先取得CA证书;
· 未设置CRL发布点位置,且不能从PKI域中CA证书或本地证书中获得正确的发布点;
· 设置的CRL发布点位置不正确;
· 不能获取CRL发布点的情况下,通过SCEP协议获取CRL,但此时PKI域中不存在本地证书,或本地证书的密钥对已被修改,或PKI域中没有配置正确的证书申请URL;
· CRL发布点的URL配置中包含不完整的地址(没有主机名或主机地址)且PKI域中没有配置LDAP服务器或者配置不正确;
· 未指定CA服务器可接受的PKI协议报文的源IP地址,或者指定的地址不正确。
· 排除物理连接故障;
· 获取或导入CA证书;
· 设置正确CRL发布点位置:配置包含完整地址的CRL发布点的URL或在PKI域中配置正确的LDAP服务器;
· 在无法获取CRL发布点的情况下,配置正确的证书申请URL,并保证已经获取了本地证书,且本地保存的密钥对的公钥与本地证书的公钥匹配;
· 在CA上发布CRL;
· 与CA服务器管理员联系,并保证配置正确的源IP地址。
导入证书失败。
可能有以下原因:
· 开启了CRL检查,但是本地没有CRL且无法获取到CRL;
· 指定的导入格式与实际导入的文件格式不一致。
· 执行undo crl check enable命令,关闭CRL检查;
· 请确认导入的文件格式并选择正确的导入格式。
导入证书失败。
可能有以下原因:
· PKI域中没有CA证书且导入的本地证书中不含CA证书链;
· 开启了CRL检查,但是本地没有CRL且无法获取到CRL;
· 指定的导入格式与实际导入的文件格式不一致;
· 设备上和证书中都没有该本地证书对应的密钥对;
· 证书已经被吊销;
· 证书不在有效期;
· 系统时钟设置错误。
· 获取或者导入CA证书;
· 执行undo crl check enable命令,关闭CRL检查,或者先获取CRL;
· 请确认导入的文件格式并选择正确的导入格式;
· 请导入包含私钥内容的证书文件;
· 导入未被吊销的证书;
· 导入还在有效期内的证书;
· 请重新设置正确的系统时钟。
导出证书失败。
可能有以下原因:
· 以PKCS#12格式导出所有证书时PKI域中没有本地证书;
· 用户所设置的导出路径不存在;
· 用户所设置的导出路径不合法;
· 要导出的本地证书的公钥和它所属PKI域中的密钥对的公钥部分不匹配;
· 设备磁盘空间已满。
· 获取或申请本地证书;
· 用mkdir命令创建用户所需路径;
· 设置正确的导出路径;
· 在PKI域中配置匹配的密钥对;
· 清理设备磁盘空间。
设置证书或CRL存储路径失败。
可能有以下原因:
· 用户所设置的证书或CRL存储路径不存在;
· 用户所设置的证书或CRL存储路径不合法;
· 设备磁盘空间已满。
· 用mkdir命令创建用户所需路径;
· 设置正确的证书或CRL存储路径;
· 清理设备磁盘空间。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!