码迷,mamicode.com
首页 > 其他好文 > 详细

使用Openssl 构建私有CA

时间:2015-05-10 17:31:14      阅读:265      评论:0      收藏:0      [点我收藏+]

标签:ip地址   服务器   软件包   linux   申请者   

环境准备:

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

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

       技术分享  

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

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

       技术分享      


Openssl构建私有CA:

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

       技术分享

    命令解释:

      # (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、自签署证书          

      技术分享

      技术分享                   

   命令解释:

      #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)生成私钥

          技术分享           

   命令解释:

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

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

  openssl: 多功能命令工具

  genrsa: 指定加密算法

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

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

       

(2) 生成证书签署请求

    技术分享

 命令解释:

      #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    

     技术分享      

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

                           

2、CA签署证书:  

(1) 验证请求者的信息

(2) 签署证书

     技术分享        

   命令解释:

         #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内容将会变化

      技术分享

                       
 (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信息(需要在证书持有端进行查看)

      技术分享

   命令解释:     

     #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信息进行对比           是否一致

    

     ②  吊销证书

          技术分享

      命令解释:

          # 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

 

 

 

 

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


使用Openssl 构建私有CA

标签:ip地址   服务器   软件包   linux   申请者   

原文地址:http://jingfu.blog.51cto.com/6184921/1649977

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!