首页 > 代码库 > 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.生成密钥对
2.生成自签署证书
3.初始化工作环境
#touch /etc/pki/CA/{index.txt,serial}
#echio 01 > index.txt
(二)节点生成签署证书请求(这里以http服务为例)
1.生成密钥对
2.生成签署请求
3.使用scp将签署请求发送给CA服务器 使用scp即可
(三)CA为节点签署证书
1.验证证书的信息的真实性
2.签署证书
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
本文出自 “菜鸟前行之路” 博客,谢绝转载!