前言:数字证书为实现双方安全通信提供了电子认证。在因特网、公司内部网或外部网中,使用数字证书实现身份识别和电子信息加密。数字证书中含有密钥对(公钥和私钥)所有者的识别信息,通过验证识别信息的真伪实现对证书持有者身份的认证。

一、CA证书的创建

  • 创建所需要的文件,下面两文件系统自动没有创建

  1.生成证书索引数据库文件

    touch /etc/pki/CA/index.txt  

   2.指定颁发证书的序列号

    echo 01 > /etc/pki/CA/serial

    注:默认是以01开始,十六进制数

  • 创建私有CA

  1.生成私钥

    cd /etc/pki/CA/

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

    注:umask 保证密钥的权限  des 在创建私钥的时候进行加密

  • CA自签证书

  1.生成自签名证书

    openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 3650 -out /etc/pki/CA/cacert.pem

    -new: 生成新证书签署请求 

    -x509: 专用于CA生成自签证书 

    -key: 生成请求时用到的私钥文件 

    -days n:证书的有效期限 

    -out /PATH/TO/SOMECERTFILE: 证书的保存路径

二、CA证书的管理

  • 申请证书

 1.需要使用证书的主机上生成私钥

    (umask 066; openssl genrsa -out /etc/pki/tls/private/test.key 2048)

  2.生成证书申请文件

    openssl req -new -key /etc/pki/tls/private/test.key -out etc/pki/tls/test.csr

    注:默认国家,省,公司名称三项必须和CA一致,否则无法通过。

  3.将证书请求文件传输给CA

    scp  申请CA文件  CA地址

  • 颁发证书

 1.CA签署证书

    openssl ca -in /tmp/test.csr -out /etc/pki/CA/certs/test.crt -days 365

    注:如果信息不匹配则无法签署证书

  2.将证书颁发给请求者

    scp 签署证书文件  请求证书的主机地址

  • 吊销证书

  1.在客户端获取要吊销的证书的serial

    openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject

  2.在CA上,根据客户提交的serial与subject信息,对比检验是否与index.txt文件中的信息一致,吊销证书

    openssl ca -revoke /etc/pki/CA/newcerts/serial.pem

          serial.pem 是跟 index.txt 一起生成的编号 

            注:吊销的时候是以newcerts/00.pem的文件为准 

            吊销之后可以查看 index.txt 文件中证书的状态信息   

  3.指定一个吊销证书的编号

    注意:第一次更新证书吊销列表前,才需要执行 

    echo 01 > /etc/pki/CA/crlnumber

    主要是生成吊销列表

  4.更新证书吊销列表

    openssl ca -gencrl -out /etc/pki/CA/crl/crl.pem 

  • 相关注意事项

 1.openssl的版本有要求,版本不一样的话,可能会导致创建CA证书的时候执行失败

  2.openssl的配置文件说明:/etc/pki/tls/openssl.cnf

  3.在配置文件中,3条必须匹配的信息字段

    [ policy_match ] 

    countryName      = match

    stateOrProvinceName = match

    organizationName   = match

    注:match改为optional则不用精确匹配