首页 > 代码库 > openssl原理的初步理解与私有CA服务器的建立

openssl原理的初步理解与私有CA服务器的建立

加密算法主要分为对称加密算法和对称加密算法

 一。对称加密算法的原理:使用相同的密钥进行加密运算的算法就是对称加密算法
       加密过程(内容-->对称加密-->加密后的内容)
       解密过程(加密内容-->对称加密方式--》解密后的内容)
       优点与特点:速度块 加密相对安全 加密紧凑;缺点是不能用于大规模使用,会随参与人数的正佳而映像密钥的存储和管理,不支持数字签名和不可否认性
   
二.  非堆成加密的原理:非对称算法需要每个参与者产生一对密钥,且将公钥共享到服务器,保证了私 钥的安全
        加密解密过程:产生密钥对--> 通过公钥/私钥进行加密-->加密内容-->通过私钥/公钥进行解密-->解密后的内容
        优点:不需要发送密钥给接受者,密钥数目与参与者相同,没有复杂的密钥分发问题,在交换公钥钱不需要预先建立信任关系
        缺点:加密速度慢,会导致密文远大于加密前的长度  
        
三.单向加密的过程:(发送方=A  接受方=B 传输内容=O)
          1.A使用算法生成自己的数字签名,用自己的私钥对数字签名加密并与C打包
          2.A使用算法生成随机对称密钥加密整个数据,生成数据C1
          3.A再用B的公钥加密随机生成的对称密钥,生成最终的数据CC
          4.B先使用自己的私钥对数据CC机密,得到生成的随机对称密钥
          5。B再用A的公钥解密有A的私钥加密生成的数字就签名
          6.最后对比数字签名,确定该包是否由A发送过来的
        
         
       
  四. 证书的产生流程:        
         1.Client 能互联网下载CA的公钥,用于验证Server身份
         2.Server 通过加密算法生成一对密钥,将公钥发给CA认证机构,做数字证书
         3.CA 通过自己的私钥加密 Server 公钥并加上自己的数字签名后,将生成的数字证书发给Server
         4.Client 与 Server 通TCP的三次握手建立连接
         5.Client 发出HTTP的报文请求,并和Server协商使用哪种算法加密
         6.Server 响应报文并将公钥(CA证书)发送给客户端
         7.Client 能通过CA的公钥解密CA证书,得到Server的公钥和数字签名,Client 通过散列函数算出
                    Server公钥的数字签名与得到的数字签名对比,来验证Server身份,验证成功并发送数据请求
         8.Server 处理请求,并根据Client请求的资源类型,来访问相关资源做出响应报文,并记录日志
         9.Client 与 Server 通过TCP的四次挥手断开连接,通信完成

 

五.建立CA证书签署服务器

     (一)CA服务器

      1.生成密钥对

wKioL1PdycXBFBx2AACo2vQBxBE179.jpg

      2.生成自签署证书

wKiom1PdyLvxLlACAAHprclskwo579.jpg

      3.初始化工作环境

         #touch /etc/pki/CA/{index.txt,serial}

         #echio  01 > index.txt

       

     (二)节点生成签署证书请求(这里以http服务为例)

      1.生成密钥对

wKiom1PdyYbTCSVGAADDrnFUmN4427.jpg

       2.生成签署请求

wKioL1Pdyq_Q59Z9AAInU0Ttxew705.jpg

         3.使用scp将签署请求发送给CA服务器 使用scp即可

 

     (三)CA为节点签署证书

       1.验证证书的信息的真实性

        2.签署证书

wKioL1PdyvGDGqZlAAJVxVGAqfc105.jpg

        3.将证书发送给节点

            #scp 证书名  服务器IP地址

       (四)吊销证书

       1.节点后去证书中的serial与subject信息,并将信息发送给CA服务器

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

     

        2.CA服务器对比验证需要吊销的证书

        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

 

注:openssl的各子命令的详细用法请使用# man openssl       

本文出自 “菜鸟前行之路” 博客,谢绝转载!