一、PKI机制简介

    PKI(Public Key Infrastructure)公钥基础设施是提供公钥加密和数字签名服务的系统或平台,目的是为了管理密钥和证书。一个机构通过采用PKI 框架管理密钥和证书可以建立一个安全的网络环境。PKI 主要包括四个部分:X.509 格式的证书(X.509 V3)和证书废止列表CRL(X.509 V2);CA 操作协议;CA 管理协议;CA 政策制定。一个典型、完整、有效的PKI 应用系统至少应具有以下五个部分; 
  1) 认证中心CA CA 是PKI 的核心,CA 负责管理PKI 结构下的所有用户(包括各种应用程序)的证书,把用户的公钥和用户的其他信息捆绑在一起,在网上验证用户的身份,CA 还要负责用户证书的黑名单登记和黑名单发布,后面有CA 的详细描述。 
  2) X.500 目录服务器 X.500 目录服务器用于发布用户的证书和黑名单信息,用户可通过标准的LDAP 协议查询自己或其他人的证书和下载黑名单信息。
  3) 具有高强度密码算法(SSL)的安全WWW服务器 Secure socket layer(SSL)协议最初由Netscape 企业发展,现已成为网络用来鉴别网站和网页浏览者身份,以及在浏览器使用者及网页服务器之间进行加密通讯的全球化标准。
  4) Web(安全通信平台) Web 有Web Client 端和Web Server 端两部分,分别安装在客户端和服务器端,通过具有高强度密码算法的SSL 协议保证客户端和服务器端数据的机密性、完整性、身份验证。 
  5) 自开发安全应用系统 自开发安全应用系统是指各行业自开发的各种具体应用系统,例如银行、证券的应用系统等。完整的PKI 包括认证政策的制定(包括遵循的技术标准、各CA 之间的上下级或同级关系、安全策略、安全程度、服务对象、管理原则和框架等)、认证规则、运作制度的制定、所涉及的各方法律关系内容以及技术的实现等。

    完整的PKI系统必须具有权威认证机构(CA)、数字证书库、密钥备份及恢复系统、证书作废系统、应用接口(API)等基本构成部分,构建PKI也将围绕着这五大系统来着手构建。


二、CA的概念

    CA (Certification Authority) 是认证机构的国际通称,它是对数字证书的申请者发放、管理、取消数字证书的机构。CA的作用是检查证书持有者身份的合法性,并签发证书(用数学方法在证书上签字),以防证书被伪造或篡改。

    数字证书认证中心(Certficate Authority,CA)是整个网上电子交易安全的关键环节。它主要负责产生、分配并管理所有参与网上交易的实体所需的身份认证数字证书。每一份数字证书都与上一级的数字签名证书相关联,最终通过安全链追溯到一个已知的并被广泛认为是安全、权威、足以信赖的机构--根认证中心(根CA)。

    电子交易的各方都必须拥有合法的身份,即由数字证书认证中心机构(CA)签发的数字证书,在交易的各个环节,交易的各方都需检验对方数字证书的有效性,从而解决了用户信任问题。CA涉及到电子交易中各交易方的身份信息、严格的加密技术和认证程序。基于其牢固的安全机制,CA应用可扩大到一切有安全要求的网上数据传输服务。

    数字证书认证解决了网上交易和结算中的安全问题,其中包括建立电子商务各主体之间的信任关系,即建立安全认证体系(CA);选择安全标准(如SET、SSL);采用高强度的加、解密技术。其中安全认证体系的建立是关键,它决定了网上交易和结算能否安全进行,因此,数字证书认证中心机构的建立对电子商务的开展具有非常重要的意义。

    认证中心(CA),是电子商务体系中的核心环节,是电子交易中信赖的基础。它通过自身的注册审核体系,检查核实进行证书申请的用户身份和各项相关信息,使网上交易的用户属性客观真实性与证书的真实性一致。认证中心作为权威的、可信赖的、公正的第三方机构,专门负责发放并管理所有参与网上交易的实体所需的数字证书。


三、利用openssl工具搭建CA

    1、创建CA服务器

    (1)、生成密钥  

    # (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

    

wKiom1PeNfbQccO7AAEWbrlpzy4611.jpg

    

    (2)、自签证书 

    # openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655
    
    req: 生成证书签署请求        
    -news: 新请求        
    -key /path/to/keyfile: 指定私钥文件        
    -out /path/to/somefile: 指定生成的证书存放位置         
    -x509: 生成自签署证书        
    -days n: 有效天数


wKioL1PeNxCD68SYAAN8m3X4PDA871.jpg

    (3)、初始化工作环境

    # touch /etc/pki/CA/{index.txt,serial}
    # echo 01 > /etc/pki/CA/serial    生成证书颁发的序列号管理文件

  wKiom1PeNffBAQr9AAEVhwj9XRQ680.jpg  

    2、节点申请证书:

        (一) 节点生成请求

        1、生成密钥对儿

        # (umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 4096)

wKiom1PeNffj3QlQAAEPsCYmBsw712.jpg

        2、生成证书签署请求

        # openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr

wKiom1PeNfnRohmbAAQet5d3M_o107.jpg

        3、把签署请求文件发送给CA服务

        # scp httpd.csr 172.16.139.6:/root/    将请求文件发送到CA服务器的root家目录下

wKioL1PeNxLBSXueAACzvG8f5IU516.jpg

    (二) CA签署证书

        1、验正证书中的信息;

        2、签署证书

        # mkdir /etc/pki/CA/request    创建一个文件,专门用来放客户端的请求文件
        # cp /root/http.csr /etc/pki/CA/request    复制客户端的请求文件到request目录下
        # openssl ca -in /etc/pki/CA/request/http.csr -out /etc/pki/CA/request/http.crt -days 365
        为客户端签署证书,有效期为一年

wKiom1PeNfqC3ZYqAARuHXUZLTs626.jpg

        3、发送给请求者;

        # scp /etc/pki/CA/request/http.crt 172.16.139.7:/root/

wKioL1PeNxPQMrLHAACSB-sFJ8Y915.jpg

四、吊销证书的操作

        (一)节点

    1、获取证书serial

        # openssl x509 -in /path/to/certificate_file.crt -noout -serial -subject


         (二) CA

    2、根据节点提交的serial和subject信息来验正与index.txt文件中的信息是否一致;

    3、吊销证书

        # openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem


    4、生成吊销证书的编号(如果是第一次吊销)     

        # echo 00 > /etc/pki/CA/crlnumber


    5、更新证书吊销列表    

        # cd /etc/pki/CA/crl/
        # openssl ca -gencrl -out thisca.crl

            

            如果需要,查看crl文件的内容:     

        # openssl crl -in /path/to/crlfile.crl -noout -text