首页 > 代码库 > openssl的加密、解密以及构建私有CA
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头。
SSL协议提供的服务主要有:
1)认证用户和服务器,确保数据发送到正确的客户机和服务器;
2)加密数据以防止数据中途被窃取;
3)维护数据的完整性,确保数据在传输过程中不被改变。
工具openssl:多用途的命令行工具,各功能分别使用子命令实现
对称加密:使用openssl实现对称加密和解密文件
----------------------------------------- 使用enc工具为例
加密/tmp/rc.sysinit文件生成rc.sysinit文件
解密rc.sysinit.code文件
单向加密:使用openssl实现单向加密,提取文件指纹
以dgst工具,md5算法为例
生成用户密码:# openssl passwd -1 -salt SALT
生成随机数:# opnessl rand -bash64|-hex NUM
注意:NUM表示字节;-hex时,每个字符为4位,因此,两个字符为一个字节
例如:# opnessl passwd -1 -salt `openssl rand -hex 4`
公钥加密
使用openssl生成密钥对
1、 首先生成私钥
2、从私钥中提取公钥
OpenSSL构建私有CA
一、建立私有CA
查看openssl安装后生成的所有文件列表:
openssl的主配置文件:/etc/pki/tls/openssl.conf
默认的CA工作目录: /etc/pki/CA
1、生成私钥:
步骤一:
步骤二:
------------------------------注意:生成的私钥要保存在private中
步骤三:检测生成的私钥
2、生成自签署证书:
red子命令:生成PKCS#10格式的证书签署请求
步骤一:
注:也可以编辑配置文件,方便以后直接使用:# vim /etc/pki/tls/openssl.cnf
步骤二:
步骤三:
注意:第一次建立私有CA时,需要手动创建index.txt和serial;追加01到serial中
二、给节点发放证书:
注:CA主机地址为:172.16.249.29 客户端主机地址为:172.16.7.1
1、节点申请证书
假设:用httpd服务,因此其位置为/etc/httpd/conf/certs
生成私钥:
生成证书签署请求:
把请求发送给ca:
-----------------注:可跨主机复制给CA
2.CA签署证书:
验证请求者的信息:
签署证书:
检测:
把签署好的证书发还给请求者:
3、查看证书中的相关信息
查看内容如下部分:
三、吊销证书
在客户端执行:
(一)获取证书的serial
查看部分内容如下:
在CA端执行:
(二)CA
1、根据证书持有者提交的serial和subject信息来与index.txt数据库文件中的信息是否一致;
2、吊销证书
注意:所有新生成的证书文件都在newcerts
注意:生成吊销证书的编号(如果是第一次吊销)
# echo 01 > /etc/pki/CA/crlnumber
3、更新证书吊销列表
注意:查看crl文件的方法:
验证证书:
1、使用CA的公钥的解密证书的数字签名
2、使用同样的单向加密算法提取证书文件特征码,对比解密的结果
3、验证主体名称与请求的服务器地址是否相同
本文出自 “小二哥Linux” 博客,请务必保留此出处http://9612520.blog.51cto.com/9602520/1588400
openssl的加密、解密以及构建私有CA