环境准备:

 一、准备两台测试机,CA服务器ip地址是192.168.10.103,证书申请者ip是192.168.10.120

 二、确保Linux主机以安装openssl软件包,可以使用rpm查看

       wKiom1VO8W-TmwnIAAArsxgO1AA317.jpg  

 三、确保有openssl加密功能组件:

  openssl(多功能命令工具)、libcrypto(公共加密库)、libssl(SSL协议的实现)

       wKioL1VO8w2QJIT_AAAVP4gZEHk321.jpg      


Openssl构建私有CA:

 一、 构建私有CA: 
    1、生成私有秘钥

       wKiom1VO8fbR_J-iAAAv8ck2mrU018.jpg

    命令解释:

      # (umask 077; openssl   genrsa  -out  cakey.pem 2048)

     umask  077:  保证秘钥文件其他人没有读写执行权限,在()内执行表示对当前子shell有效

     openssl: 多功能命令工具

     genrsa: 指定加密算法

     -out  /path/to/somefile: 表示将生成的私钥保存到指定的位置

     2048 : 秘钥的长度,可以根据需要自定义

   根据私钥提取公钥:

       #openssl   rsa  -in  private/cakey.pem  -pubout

   命令解释: 

      openssl: 多功能命令工具

       rsa  :  指定加密算法

       -in  /path/to/somfile.pem  :  读取指定位置的私钥

       -pubout: 将提取的公钥输出                                    

   

   2、自签署证书          

      wKioL1VO9APBnzDjAABIbzuTN18204.jpg

      wKiom1VO8ozBkrhsAAAf_6rc6MI702.jpg                   

   命令解释:

      #openssl  req –x509 -new  -key  private/cakey.pem  -out acert.pem   -days  3655

   openssl  :  多功能命令工具

   req:是openssl 的子命令,用于生成PKCS#10格式的证书签署请求

   -x509 :自签发证书,只有在给自己签发证书时才可以使用

   -new:  生成新证书

   -key  /path/to/somfile.pem: 指定私钥的存储位置

   -out  /path/to/somefile.pem :  指定生成的证书存储位置

   -days  NUM: 指定证书的有效期

   第一次签发证书时需要创建index.txt和serial两个文件

    index.txt: 证书的索引文件

    serial: 证书的序列号,echo 01 > serial 指定证书的初时序列号
   

 二、 给节点发放证书:

       假设: 是http服务,在/etc/httpd/conf/certs中配置 
    1、 节点申请证书: 
     (1)生成私钥

          wKiom1VO8z6itp41AAAWp3wK4V4826.jpg           

   命令解释:

    # (umask 077; openssl genrsa -out cakey.pem 2048)

  umask 077: 保证秘钥文件其他人没有读写执行权限,在()内执行表示对当前子shell有效

  openssl: 多功能命令工具

  genrsa: 指定加密算法

  out /path/to/somefile: 表示将生成的私钥保存到指定的位置

  2048 : 秘钥的长度,可以根据需要自定义

       

(2) 生成证书签署请求

    wKiom1VO85XQpperAABqwZUpNgc776.jpg

 命令解释:

      #openssl   req   -new   -key  https.key  -out  https.cst -days 3655

   openssl:   多功能命令工具

   req :是openssl 的子命令,用于生成PKCS#10格式的证书签署请求

   -new:  生成新的证书请求

   -key   /path/to/somefile : 指定私钥证书的位置

   -out  /path/to/somefile:  指定证书签署请求存储位置

   -days  NUM: 申请证书的有效期


(3) 把请求文件发送给CA    

     wKioL1VO9XLzpUB3AAAPFQ2f3qo097.jpg      

     scp:利用ssh协议在主机之间安全实现文件传输 ,具体使用方法请Google或者百度 

                           

2、CA签署证书:  

(1) 验证请求者的信息

(2) 签署证书

     wKiom1VO9E2AmietAABq6zes8dk579.jpg        

   命令解释:

         #openssl  ca  -in  /tmp/https.cst   -out   /tmp/https.crt   -days  3655

     openssl:  多功能命令工具

     ca: 是openssl 子命令,用于签发证书  

     -in    /path/to/somefile.csr:  指定证书签署请求位置

     -out  /path/to/somefile.ctr :  指定签发的证书存放位置(此仅限于测试,实际生         产中请存放其他位置) 

 签署成功后index.txt和serial内容将会变化

      wKioL1VO9ieiNsXEAAANLRhwCuY245.jpg

                       
 (3)把签署好的证书发还给请求者

      #scp    /tmp/https.crt      192.168.10.103:/etc/httpd/conf/cert

  至此证书签发完成,可以用于公司内部使用;要查看证书内容,可以使用一下命令:

  #openssl x509 -in /etc/httpd/conf/cert/https/crt -noout {-text|-serial|–subject}

                     
                  
3、证书吊销 
 (1)获取证书的serial和subject信息(需要在证书持有端进行查看)

      wKiom1VO9RLAfCE9AAAU5S5FYbI498.jpg

   命令解释:     

     #openssl x509 -in /etc/httpd/conf/cert/https.crt  -noout -serial  -subject

    openssl:   多功能命令工具

    x509: 通用的证书格式

    -in   /path/to/somefile.crt : 指定证书的位置

    -noout: 不输出编码的版本请求

    -serial: 输出序列号

    -subjec: 输出申请信息

          

  (2)吊销(在CA服务器上操作)

       根据证书持有者提交的serial和subjec信息与CA服务器中的index.txt信息进行对比           是否一致

    

     ②  吊销证书

          wKioL1VO9xGwDgczAABq6zes8dk773.jpg

      命令解释:

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

             openssl : 多功能命令工具

             ca: 是openssl子命令,是指定ca的最简单应用

             -revoke    /path/to/somfile.pem:   取消指定的证书

             

            ③ 生成吊销证书的编号(如果是第一次吊销,则需要此操作)

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

                           

            ④更新证书吊销列表

               #cd    /etc/pki/CA/crl

              #openssl   ca   –gencrl    -out    https.crl 

           命令解释:

              openssl :多功能命令工具

              ca: 是 openssl 的子命令,指定ca的简单应用

              -gencrl: 生成吊销列表索引信息

              -out  /path/to/somfile.crl :将生成的吊销列表信息保存指定文件中

               

            ⑤查看吊销列表的信息

               #openssl   crl     -in  https.crl    -noout  -text

 

 

 

 

     本人是菜鸟,写的不好,请大侠请勿喷,仅供个人学习使用