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

openssl的加密、解密以及构建私有CA

时间:2014-12-10 18:15:47      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:openssl; 加密、解密;构建私有ca;给节点发放证书

SSL、TLS介绍:

  SSL:安全套接字(Secure Socket Layer,SSL)协议是Web浏览器与Web服务器之间安全交换信息的协议,提供两个基本的安全服务:鉴别与保密。

    TLS:安全传输层协议(Transport Layer Security)用于在两个通信应用程序之间提供保密性和数据完整性。该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。较低的层为 TLS 记录协议,位于某个可靠的传输协议(例如 TCP)上面,与具体的应用无关,所以,一般把TLS协议归为传输层安全协议。

SSL和TLS的位置:

  SSL介于应用层和TCP层之间。应用层数据不再直接传递给传输层,而是传递给SSL层,SSL层对从应用层收到的数据进行加密,并增加自己的SSL头。

bubuko.com,布布扣

SSL协议提供的服务主要有:
  1)认证用户和服务器,确保数据发送到正确的客户机和服务器;
  2)加密数据以防止数据中途被窃取;
  3)维护数据的完整性,确保数据在传输过程中不被改变。


工具openssl:多用途的命令行工具,各功能分别使用子命令实现


对称加密:使用openssl实现对称加密和解密文件

   ----------------------------------------- 使用enc工具为例

加密/tmp/rc.sysinit文件生成rc.sysinit文件

bubuko.com,布布扣

解密rc.sysinit.code文件

bubuko.com,布布扣


单向加密:使用openssl实现单向加密,提取文件指纹

以dgst工具,md5算法为例

bubuko.com,布布扣

生成用户密码:# openssl passwd -1 -salt SALT

生成随机数:# opnessl rand -bash64|-hex NUM

注意:NUM表示字节;-hex时,每个字符为4位,因此,两个字符为一个字节

例如:# opnessl passwd -1 -salt `openssl rand -hex 4`


公钥加密

使用openssl生成密钥对

1、  首先生成私钥

bubuko.com,布布扣

2、从私钥中提取公钥

bubuko.com,布布扣

OpenSSL构建私有CA

一、建立私有CA

查看openssl安装后生成的所有文件列表:

bubuko.com,布布扣

   openssl的主配置文件:/etc/pki/tls/openssl.conf

    默认的CA工作目录: /etc/pki/CA

1、生成私钥:

  步骤一:

bubuko.com,布布扣

  步骤二:

bubuko.com,布布扣

------------------------------注意:生成的私钥要保存在private中

  步骤三:检测生成的私钥

bubuko.com,布布扣

2、生成自签署证书:

red子命令:生成PKCS#10格式的证书签署请求

  步骤一:

bubuko.com,布布扣

注:也可以编辑配置文件,方便以后直接使用:# vim /etc/pki/tls/openssl.cnf

bubuko.com,布布扣

  步骤二:

bubuko.com,布布扣

步骤三:

bubuko.com,布布扣

注意:第一次建立私有CA时,需要手动创建index.txt和serial;追加01到serial中


二、给节点发放证书:

       注:CA主机地址为:172.16.249.29 客户端主机地址为:172.16.7.1

1、节点申请证书

      假设:用httpd服务,因此其位置为/etc/httpd/conf/certs

   生成私钥:

bubuko.com,布布扣


bubuko.com,布布扣

  生成证书签署请求:

bubuko.com,布布扣

  把请求发送给ca:

bubuko.com,布布扣

-----------------注:可跨主机复制给CA

bubuko.com,布布扣

2.CA签署证书:

  验证请求者的信息:

  签署证书:

bubuko.com,布布扣

 检测:

bubuko.com,布布扣

  把签署好的证书发还给请求者:

bubuko.com,布布扣

3、查看证书中的相关信息

bubuko.com,布布扣

   查看内容如下部分:

bubuko.com,布布扣


三、吊销证书

在客户端执行:

(一)获取证书的serial

bubuko.com,布布扣


查看部分内容如下:

bubuko.com,布布扣


在CA端执行:

(二)CA

 1、根据证书持有者提交的serial和subject信息来与index.txt数据库文件中的信息是否一致;

bubuko.com,布布扣


2、吊销证书

  注意:所有新生成的证书文件都在newcerts

bubuko.com,布布扣

  注意:生成吊销证书的编号(如果是第一次吊销)

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


3、更新证书吊销列表

bubuko.com,布布扣


注意:查看crl文件的方法:

bubuko.com,布布扣


验证证书:

      1、使用CA的公钥的解密证书的数字签名

      2、使用同样的单向加密算法提取证书文件特征码,对比解密的结果

      3、验证主体名称与请求的服务器地址是否相同


本文出自 “小二哥Linux” 博客,请务必保留此出处http://9612520.blog.51cto.com/9602520/1588400

openssl的加密、解密以及构建私有CA

标签:openssl; 加密、解密;构建私有ca;给节点发放证书

原文地址:http://9612520.blog.51cto.com/9602520/1588400

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