SSL 数据加密原理简述

       最近调试mqtt协议,为了保证数据安全性和未来客户端的对云的兼容性选择了openssl做为安全加密中间层,而没有使用私有的加密方式。因此花了点时间学习了一下ssl 加密流程整理以下:html

由于正常正式使用场合是CA机构给对应的组织结构颁发CA证书的,这里是调试就本身使用opanssl 生成证书了,不少细节参考下面的参考博文。配置过程:安全

#这一步原本是要证书签发机构,发行给网站组织。下面的方式是调试本身产生组织根证书服务器

openssl req -new -x509 -days 36500 -extensions v3_ca -keyout ca.key -out ca.crt学习


#购买方使用买的证书(组织根证书)给自服务器产生秘钥
opensslgenrsa -out server.key 2048
#拿服务器秘钥计算服务器数字签名,未来这个CSR文件会发送到请求交互方,ssl_client必须验证 ssl_server
openssl req -out server.csr -key server.key -new
#拿数字签名和证书机构给的组织证书和组织秘钥产生服务器证书,至此服务器已经具有ssl条件
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 36500网站


#使用买的证书(组织证书)给客户端产生秘钥
opensslgenrsa -out client.key 2048
#拿秘钥计算数字签名,未来这个CSR文件会发送到请求交互方服务器(若是服务器须要验证client),ssl_server选择性验证 ssl_client
openssl req -out client.csr -key client.key -new
#拿数字签名和证书机构给的组织证书和组织秘钥产生客户端证书,至此client已经具有ssl条件
openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -days 36500加密

汇总成为一个脚本就是:spa

openssl req -new -x509 -days 36500 -extensions v3_ca -keyout ca.key -out ca.crt
openssl genrsa -out server.key 2048
openssl req -out server.csr -key server.key -new
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 36500
#
#
openssl genrsa -out client.key 2048
openssl req -out client.csr -key client.key -new
openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -days 36500

SSL 的身份认证过程:调试

一、client 会拥有服务器的证书(非CA给的证书),在client请求服务器时服务器会返回签名文件。--------------明文
二、经过本地的服务器的证书鉴别签名文件就能知道服务器是否可信,若是可信前面的解密服务器签名文件的过程获得了服务器的公钥。
三、用服务器的公钥加密主密钥计算分散因子(Change Cipher Spec)后发送到服务器同时告知服务器协商后使用这个主密钥。--------------密文
四、服务器用私钥解密这个分散因子,并返回client确认协商结果和可能还带有会话ID。--------------密文
五、此时clien 就使用以前第三步告诉服务器的秘钥,若是成功解密服务器的回应则说明服务器是合法的。-------------到此客户端验证服务器身份和秘钥交换就结束了。code

若是服务器须要验证客户端则还须要以下过程(这个通常不多使用,由于须要服务器保存全部合法客户端的的证书):
1.五、在服务器回发本身的数字签名后会同时请求client的数字签名,而后验证数字签名是否正确。其他过程不变。server

这里的1.5表明在上面步骤的第一步和第二步之间。

参考博文写的很是好:https://www.cnblogs.com/bhlsheji/p/4586597.html 

相关文章
相关标签/搜索