08-PKI配置
本章节下载: 08-PKI配置 (289.29 KB)
目 录
l 手册中标有请以设备实际情况为准的地方,请参见“用户手册”中的“特性差异化列表”部分的描述。
l 设备支持的接口类型和编号与设备的实际情况相关,本手册涉及以太网接口的配置举例统一使用Eth口举例说明。实际使用中请根据具体设备的接口类型和编号进行配置。
l 本手册中所述的AP设备如无特殊情况说明,可以指代一般意义下的无线Mesh设备。
PKI(Public Key Infrastructure,公钥基础设施)是一个利用公共密钥理论和技术来实现并提供信息安全服务的具有通用性的安全基础设施。
公共密钥体制也称为非对称密钥体制,是目前应用最广泛的一种加密体制,在这一体制中,它使用一个非对称的密钥对,分别是一个公开的加密密钥(公钥)和一个保密的解密密钥(私钥),用公钥加密的信息只能用私钥机密,反之亦然。由于公钥是公开的,需要在网上传送,故公钥的管理问题就是公共密钥体制所需要解决的关键问题。
目前,PKI系统中引出的数字证书机制就是一个很好的解决方案。基于公共密钥技术的数字证书是一个用户的身份和他所持有的公钥的结合,它是使用PKI系统的用户建立安全通信的信任基础。
基于数字证书的PKI系统,能够为网络通信和网络交易,特别是电子政务和电子商务业务,透明地提供一整套安全服务,主要包括身份认证、保密、数据完整性和不可否认性。
目前,我司的PKI可为安全协议IPsec、SSL、WAPI提供证书管理机制。
数字证书是一个经CA(Certificate Authority,证书机构)签名的、包含公开密钥及相关的用户身份信息的文件,它建立了用户身份信息与用户公钥的关联。CA对数字证书的签名保证了证书的合法性和权威性。数字证书的格式遵循ITU-T X.509国际标准,目前最常用的为X.509 V3标准。一个数字证书中包含多个字段,包括证书签发者的名称、主体的公钥信息、CA对证书的数字签名、证书的有效期等。
本手册中涉及两类证书:本地(local)证书和CA(Certificate Authority)证书。本地证书是CA签发给用户的数字证书;CA证书是CA自身的证书。若PKI系统中存在多个CA,则会形成一个CA层次结构,最上层的CA是根CA,它拥有一个CA“自签名”的证书。
由于用户姓名的改变、私钥泄漏或业务中止等原因,需要存在一种方法将现行的证书撤消,即撤消公开密钥及相关的用户身份信息的绑定关系。在PKI中,所使用的这种方法为证书废除列表。任何一个证书被废除以后,CA就要发布CRL来声明该证书是无效的,并列出所有被废除的证书的序列号。CRL提供了一种检验证书有效性的方式。
当一个CRL的撤消信息过多时会导致CRL的发布规模变得非常庞大,且随着CRL大小的增加,网络资源的使用性能也会随之下降。为了避免这种情况,允许一个CA的撤消信息通过多个CRL发布出来,并且使用CRL发布点来指出这些小CRL的位置。
CA在受理证书请求、颁发证书、吊销证书和发布CRL时所采用的一套标准被称为CA策略。通常,CA以一种叫做证书惯例声明(CPS,Certification Practice Statement)的文档发布其策略,CA策略可以通过带外(如电话、磁盘、电子邮件等)或其他方式获取。由于不同的CA使用不同的方法验证公开密钥与实体之间的绑定,所以在选择信任的CA进行证书申请之前,必须理解CA策略,从而指导对实体进行相应的配置。
一个PKI体系由终端实体、证书机构、注册机构和PKI存储库四类实体共同组成,如下图1-1。
图1-1 PKI体系结构图
终端实体是PKI产品或服务的最终使用者,可以是个人、组织、设备(如路由器、交换机)或计算机中运行的进程。
CA是PKI的信任基础,是一个用于签发并管理数字证书的可信实体。其作用包括:发放证书、规定证书的有效期和通过发布CRL确保必要时可以废除证书。
RA是CA的延伸,可作为CA的一部分,也可以独立。RA功能包括个人身份审核、CRL管理、密钥对产生和密钥对备份等。PKI国际标准推荐由一个独立的RA来完成注册管理的任务,这样可以增强应用系统的安全性。
PKI存储库包括LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)服务器和普通数据库,用于对用户申请、证书、密钥、CRL和日志等信息进行存储和管理,并提供一定的查询功能。
LDAP提供了一种访问PKI存储库的方式,通过该协议来访问并管理PKI信息。LDAP服务器负责将RA服务器传输过来的用户信息以及数字证书进行存储,并提供目录浏览服务。用户通过访问LDAP服务器获取自己和其他用户的数字证书。
PKI技术的广泛应用能满足人们对网络交易安全保障的需求。作为一种基础设施,PKI的应用范围非常广泛,并且在不断发展之中,下面给出几个应用实例。
VPN是一种构建在公用通信基础设施上的专用数据通信网络,利用网络层安全协议(如IPsec)和建立在PKI上的加密与数字签名技术来获得机密性保护。
电子邮件的安全也要求机密、完整、认证和不可否认,而这些都可以利用PKI技术来实现。目前发展很快的安全电子邮件协议S/MIME(Secure/Multipurpose Internet Mail Extensions,安全/多用途Internet邮件扩充协议),是一个允许发送加密和有签名邮件的协议。该协议的实现需要依赖于PKI技术。
为了透明地解决Web的安全问题,在两个实体进行通信之前,先要建立SSL(Secure Sockets Layer,安全套接字层)连接,以此实现对应用层透明的安全通信。利用PKI技术,SSL协议允许在浏览器和服务器之间进行加密通信。此外,服务器端和浏览器端通信时双方可以通过数字证书确认对方的身份。
针对一个使用PKI的网络,配置PKI的目的就是为指定的实体向CA申请一个本地证书,并由设备对证书的有效性进行验证。下面是PKI的工作过程:
(1) 实体向RA提出证书申请;
(2) RA审核实体身份,将实体身份信息和公开密钥以数字签名的方式发送给CA;
(3) CA验证数字签名,同意实体的申请,颁发证书;
(4) RA接收CA返回的证书,发送到LDAP服务器以提供目录浏览服务,并通知实体证书发行成功;
(5) 实体获取证书,利用该证书可以与其它实体使用加密、数字签名进行安全通信;
(6) 实体希望撤消自己的证书时,向CA提交申请。CA批准实体撤消证书,并更新CRL,发布到LDAP服务器。
表1-1 PKI配置任务简介
配置任务 |
说明 |
详细配置 |
|
配置实体DN |
必选 |
||
配置PKI域 |
必选 |
||
PKI证书申请 |
自动申请证书 |
二者必选其一 |
|
手工申请证书 |
|||
手工获取证书 |
可选 |
||
配置PKI证书验证 |
可选 |
||
销毁本地RSA或ECDSA密钥对 |
可选 |
||
删除证书 |
可选 |
||
配置证书属性的访问控制策略 |
可选 |
一份证书是一个公开密钥与一个身份的绑定,而身份必须与一个特定的PKI实体相关联。实体DN(Distinguished Name,可识别名称)的参数是实体的身份信息,CA根据实体提供的身份信息来唯一标识证书申请者。
实体DN的参数包括:
l 实体通用名
l 实体所属国家代码,用标准的2字符代码表示。例如,“CN”是中国的合法国家代码,“US”是美国的合法国家代码
l 实体FQDN(Fully Qualified Domain Name,合格域名),是实体在网络中的唯一标识,由一个主机名和域名组成,可被解析为IP地址。例如,www是一个主机名,whatever.com是一个域名,则www.whatever.com就是一个FQDN。
l 实体IP地址
l 实体所在地理区域名称
l 实体所属组织名称
l 实体所属部门名称
l 实体所属州省
实体DN的配置必须与CA证书颁发策略相匹配,以确认实体DN的配置任务,如哪些实体参数为必选配置,哪些为可选配置。申请者的身份信息必须符合CA证书颁发策略,否则证书申请可能会失败。
表1-2 配置实体DN
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建一个实体,并进入该实体视图 |
pki entity entity-name |
必选 缺省情况下,无实体存在 |
配置实体通用名 |
common-name name |
可选 缺省情况下,未配置实体的通用名 |
配置实体所属国家代码 |
country country-code-str |
可选 缺省情况下,未配置实体所属国家代码 |
配置实体FQDN |
fqdn name-str |
可选 缺省情况下,未配置实体FQDN |
配置实体IP地址 |
ip ip-address |
可选 缺省情况下,未配置实体IP地址 |
配置实体所在地理区域名称 |
locality locality-name |
可选 缺省情况下,未配置实体所在地理区域 |
配置实体所属组织名称 |
organization org-name |
可选 缺省情况下,未配置实体所属组织 |
配置实体所属部门名称 |
organization-unit org-unit-name |
可选 缺省情况下,未配置实体所属部门 |
配置实体所属州省 |
state state-name |
可选 缺省情况下,未配置实体所属州省 |
l 目前设备上最多可以创建两个实体。
l Windows 2000 CA服务器对证书申请的数据长度有一定的限制。实体DN配置项超过一定数据长度时,申请证书没有回应。
实体在进行PKI证书申请操作之前需要配置一些注册信息来配合完成申请的过程。这些信息的集合就是一个实体的PKI域。
PKI域是一个本地概念,因此创建PKI域的目的是便于其它应用引用PKI的配置,比如IKE、SSL等。一个设备上配置的PKI域对CA和其它设备是不可见的,每一个PKI域有单独的域参数配置信息。
PKI域中包括以下参数:
l 信任的CA名称
在申请证书时,是通过一个可信实体认证机构,来完成实体证书的注册颁发,因此必须指定一个信任的CA名称。
l 实体名称
向CA发送证书申请请求时,必须指定所使用的实体名,以向CA表明自己的身份。
l 证书申请的注册机构
证书申请的受理一般由一个独立的注册机构(即RA)来承担,它接收用户的注册申请,审查用户的申请资格,并决定是否同意CA给其签发数字证书。注册机构并不给用户签发证书,而只是对用户进行资格审查。有时PKI把注册管理的职能交给CA来完成,而不设立独立运行的RA,但这并不是取消了PKI的注册功能,而只是将其作为CA的一项功能而已。PKI推荐独立使用RA作为注册审理机构。
l 注册服务器的URL
证书申请之前必须指定注册服务器的URL,随后实体可通过简单证书注册协议(SCEP,Simple Certification Enrollment Protocol)向该服务器提出证书申请,SCEP是专门用于与认证机构进行通信的协议。
l 证书申请状态查询的周期和次数
实体在发送证书申请后,如果CA采用手工验证申请,证书的发布会需要很长时间。在此期间,客户端需要定期发送状态查询,以便在证书签发后能及时获取到证书。客户端可以配置证书申请状态的查询周期和次数。
l LDAP服务器IP地址
在PKI系统中,用户的证书和CRL信息的存储是一个非常核心的问题。一般采用LDAP服务器来存储证书和CRL,这时就需要指定LDAP服务器的位置。
l 验证根证书时使用的指纹
当设备从CA获得根证书时,需要验证CA根证书的指纹,即根证书内容的散列值,该值对于每一个证书都是唯一的。如果CA根证书的指纹与在PKI域中配置的指纹不同,则设备将拒绝接收根证书。
l 外部实体
外部实体概念的引入主要来源于WAPI(WLAN Authentication and Privacy Infrastructure,无线局域网鉴别与保密基础结构)协议。由于WAPI需要获取AS的证书,所以对于AS这个实体而言是不同于本地实体的。根据WAPI协议的规定,外部实体的具体身份既有可能是CA,也有可能是与本地实体处于同一级别的实体。当设备要获取外部实体的证书时,需首先配置外部实体的身份信息,即根据外部实体的身份信息来获取外部实体所对应的证书;在不清楚外部实体的身份信息时,也可以将外部实体配置成手工导入方式,此时外部实体的证书就不再需要身份信息了,直接导入到本地设备的PKI域即可。有关WAPI的详细介绍,请参见“安全分册”中的“WAPI配置”。
表1-3 配置PKI域
配置任务 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建一个PKI域,并进入PKI域视图 |
pki domain domain-name |
必选 |
配置信任的CA名称 |
ca identifier name |
必选 缺省情况下,未配置信任的CA名称 |
指定实体名称 |
certificate request entity entity-name |
必选 缺省情况下,未指定实体名称 指定的实体名称必须已创建 |
配置证书申请的注册受理机构 |
certificate request from { ca | ra } |
必选 缺省情况下,未指定证书申请的注册受理机构 |
配置注册服务器URL |
certificate request url url-string |
必选 缺省情况下,未指定注册服务器URL |
配置证书申请状态查询的周期和次数 |
certificate request polling { count count | interval minutes } |
可选 缺省情况下,证书申请状态查询周期为20分钟,每一个周期内查询50次 |
配置LDAP服务器 |
ldap-server ip ip-address [ port port-number ] [ version version-number ] |
可选 缺省情况下,未指定LDAP服务器 |
配置验证根证书时使用的指纹 |
root-certificate fingerprint { md5 | sha1 } string |
当证书申请方式为自动方式时,此配置必选;当证书申请方式为手工方式时,此配置可选,若不配置,需要用户自行验证根证书指纹 缺省情况下,未指定验证根证书时使用的指纹 |
配置外部实体 |
peer-entity entity-name { dn dn-string [ fqdn fqdn-string [ ip ip-address ] ] | fqdn fqdn-string [ ip ip-address ] | ip ip-address | import } |
可选 缺省情况下,未配置外部实体 |
配置证书所采用的签名算法 |
signature-algorithm { ecdsa | rsa } |
可选 缺省情况下,证书所采用的签名算法为RSA算法 |
l 目前一个设备只支持同时创建两个PKI域。
l CA的名称只是在获取CA证书时使用,申请本地证书时不会用到。
l 目前,注册服务器URL的配置不支持域名解析。
证书申请就是实体向CA自我介绍的过程。实体向CA提供身份信息,以及相应的公开密钥,这些信息将成为颁发给该实体证书的主要组成部分。实体向CA提出证书申请,有离线和在线两种方式。离线申请方式下,CA允许申请方通过带外方式(如电话、磁盘、电子邮件等)向CA提供申请信息。
在线证书申请有手工发起和自动发起两种方式。
配置证书申请方式为自动方式后,在没有本地证书时实体自动通过SCEP协议进行申请,而且在证书即将过期时自动申请新的证书。
表1-4 自动申请证书
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入PKI域视图 |
pki domain domain-name |
- |
配置证书申请为自动方式 |
certificate request mode auto [ key-length key-length | password { cipher | simple } password ] * |
必选 缺省情况下,证书申请为手工方式 |
配置证书申请方式为手工方式后,需要手工完成获取CA证书、生成密钥对、申请本地证书的工作。
获取CA证书的目的是用来验证本地证书的真实性和合法性。
密钥对的产生是证书申请过程中重要的一步。申请过程使用了一对主机密钥:私钥和公钥。私钥由用户保留,公钥和其他信息则交由CA中心进行签名,从而产生证书。
有关RSA和ECDSA密钥对的具体配置请参见“安全分册”中的“公钥管理配置”。
表1-5 手工申请证书
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入PKI域视图 |
pki domain domain-name |
- |
配置证书申请为手工方式 |
certificate request mode manual |
可选 缺省情况下,证书申请为手工方式 |
退回系统视图 |
quit |
- |
手工获取CA证书 |
请参见1.6 |
必选 |
生成本地RSA或ECDSA密钥对 |
public-key local create { ecdsa | rsa } |
必选 缺省情况下,本地没有RSA和ECDSA密钥对。 |
手工申请本地证书 |
pki request-certificate domain domain-name [ password ] [ pkcs10 [ filename filename ] ] |
必选 |
l 若本地证书已存在,为保证密钥对与现存证书的一致性,不应执行创建密钥对命令,必须在删除本地证书后再执行public-key local create命令生成新的密钥对。有关public-key local create命令的详细介绍,请参见“安全分册”中的“公钥管理命令”。
l 创建的新密钥对将覆盖旧密钥对。若本地已有RSA或ECDSA密钥对,执行public-key local create命令时,系统会提示是否替换原有密钥对。
l 如果本地证书已存在,则不允许再执行证书申请操作,以避免因相关配置的修改使得证书与注册信息不匹配。若想重新申请,请先使用pki delete-certificate命令删除存储于本地的CA证书与本地证书,然后再执行pki request-certificate domain命令。
l 当无法通过SCEP协议向CA在线申请证书时,可以使用可选参数pkcs10打印出本地的证书申请信息。用户保存证书申请信息,并将其通过带外方式发送给CA进行证书申请。
l 证书申请之前必须保证实体时钟与CA的时钟同步,否则申请证书的有效期会出现异常。
l pki request-certificate domain配置不能被保存在配置文件中。
用户通过此配置可以将已存在的CA证书、本地证书或者外部实体证书获取至本地。获取证书有两种方式:离线方式和在线方式。离线方式下获取证书需要通过带外方式(如FTP、磁盘、电子邮件等)取得证书,然后将其导入至本地。
获取证书的目的有两个:
l 将CA签发的与实体所在安全域有关的证书存放到本地,以提高证书的查询效率,减少向PKI证书存储库查询的次数。
l 为证书的验证做好准备。
在线获取本地证书之前必须完成LDAP服务器的配置。
表1-6 手工获取证书
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
手工获取证书 |
在线方式 |
pki retrieval-certificate { ca | local | peer-entity entity-name } domain domain-name |
二者必选其一 |
离线方式导入证书 |
pki import-certificate { ca | local | peer-entity entity-name } domain domain-name { der | p12 | pem } [ filename filename ] |
l 如果本地已有CA证书存在,则不允许执行手工获取CA证书的操作,避免因相关配置的修改使得证书与注册信息不匹配。若想重新获取,请先使用pki delete-certificate命令删除CA证书与本地证书后,再执行此命令。
l pki retrieval-certificate配置不能被保存在配置文件中。
在使用每一个证书之前,必须对证书进行验证。证书验证包括对签发时间、签发者信息以及证书的有效性几方面进行验证。证书验证的核心是检查CA在证书上的签名,并确定证书仍在有效期内,而且未被废除,因此在进行证书验证操作之前必须首先获取CA证书。
配置证书验证时可以设置是否必须进行CRL检查。如果配置为使能CRL检查,则检验证书的有效性,必须通过CRL判断。
表1-7 配置使能CRL检查的证书验证
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入PKI域视图 |
pki domain domain-name |
- |
配置CRL发布点的URL |
crl url url-string |
可选 缺省情况下,未指定CRL发布点的URL |
配置CRL的更新周期 |
crl update-period hours |
可选 缺省情况下,根据CRL文件中的下次更新域进行更新 |
使能CRL检查 |
crl check enable |
可选 缺省情况下,CRL检查处于开启状态 |
退回系统视图 |
quit |
- |
获取CA证书 |
请参见1.6 |
必选 |
获取CRL并下载至本地 |
pki retrieval-crl domain domain-name |
必选 |
检验证书的有效性 |
pki validate-certificate { ca | local | peer-entity entity-name } domain domain-name |
必选 |
表1-8 配置不使能CRL检查的PKI证书验证
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入PKI域视图 |
pki domain domain-name |
- |
禁止CRL检查 |
crl check disable |
必选 缺省情况下,CRL检查处于开启状态 |
退回系统视图 |
quit |
- |
获取CA证书 |
请参见1.6 |
必选 |
检验证书的有效性 |
pki validate-certificate { ca | local | peer-entity entity-name } domain domain-name |
必选 |
l CRL的更新周期是指本地从CRL存储服务器下载CRL的时间间隔。手工配置的CRL更新周期将优先于CRL文件中指定的更新时间。
l pki retrieval-crl domain命令不能被保存在配置文件中。
l 目前,CRL发布点URL的配置不支持域名解析。
由CA颁发的证书都会设置有效期,证书生命周期的长短由签发证书的CA中心来确定。当用户的私钥被泄漏或证书的有效期快到时,用户应该删除旧的密钥对,产生新的密钥对,重新申请新的证书。通过此配置用户可以销毁本地RSA或ECDSA密钥对。
表1-9 销毁本地RSA密钥对
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
销毁本地RSA或ECDSA密钥对 |
public-key local destroy { ecdsa | rsa } |
必选 |
命令public-key local destroy的详细介绍可参考“安全分册/公钥管理命令”。
证书过期或希望重新申请证书,可以通过此配置删除一个已经存在的本地证书或CA证书。
表1-10 配置删除证书
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置删除证书 |
pki delete-certificate { ca | local | peer-entity entity-name } domain domain-name |
必选 |
通过配置证书属性的访问控制策略,可以对用户的访问权限进行进一步的控制,保证了与之通信的服务器的安全性。
表1-11 配置证书属性的访问控制策略
操作 |
命令 |
说明 |
进入系统视图 |
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 |
必选 缺省情况下,不存在证书属性控制规则 |
配置证书属性控制规则时,group-name必须是已存在的证书属性组的名称。
在完成上述配置后,在任意视图下执行display命令可以显示配置后PKI的运行情况,通过查看显示信息验证配置的效果。
表1-12 PKI显示和维护
操作 |
命令 |
显示证书内容或证书申请状态 |
display pki certificate { { ca | local | peer-entity entity-name } domain domain-name | request-status } |
显示CRL内容 |
display pki crl domain domain-name |
显示证书属性组的信息 |
display pki certificate attribute-group { group-name | all } |
显示证书属性访问控制策略的信息 |
display pki certificate access-control-policy { policy-name | all } |
PKI的配置举例请参见“安全分册”中的“WAPI配置”。
获取CA证书时失败。
可能有以下原因:
l 网络连接故障,如网线折断,接口松动;
l 没有设置信任的CA名称;
l 证书申请的注册服务器URL位置不正确或未配置;
l 没有配置证书申请注册受理机构;
l 设备的系统时钟与CA的时钟不同步。
l 排除物理连接故障;
l 查看各必配项是否都正确配置;
l 可通过ping命令测试注册服务器是否连接正常;
l 配置证书申请注册受理机构;
l 保持系统时钟与CA同步。
手工证书请求失败。
可能有以下原因:
l 网络连接故障,如网线折断,接口松动;
l 申请之前没有先获取CA证书;
l 当前的密钥对已经绑定证书;
l 没有设置信任的CA名称;
l 证书申请的注册服务器URL位置不正确或未配置;
l 没有配置证书申请注册受理机构;
l 没有配置实体DN中必配参数。
l 排除物理连接故障;
l 获取CA证书;
l 重新创建密钥对;
l 配置信任的CA名称;
l 可通过ping命令测试注册服务器是否连接正常;
l 配置证书申请注册受理机构;
l 可通过查看CA/RA注册策略选择相关的实体DN属性进行配置。
获取CRL发生失败。
可能有以下原因:
l 网络连接故障,如网线折断,接口松动;
l 获取CRL之前未先取得CA证书;
l 未设置LDAP服务器的IP地址;
l 未设置CRL分布点位置;
l 排除物理连接故障;
l 获取CA证书;
l 设置LDAP服务器的IP地址;
l 设置CRL分布点位置;
l 重新配置LDAP版本。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!