转自:https://www.cnblogs.com/yyxianren/p/10839427.html (仅做个人备份,浏览请看原文
分为单双向:
SSL工作流程(单向)
1.客户端say hello 服务端
2.服务端将证书、公钥等发给客户端
3.客户端CA验证证书,成功继续、不成功弹出选择页面
4.客户端告知服务端所支持的加密算法
5.服务端选择最高级别加密算法明文通知客户端
6.客户端生成随机对称**key,使用服务端公钥加密发送给服务端
7.服务端使用私钥解密,获取对称**key
8.后续客户端与服务端使用该**key进行加密通信
SSL工作流程(双向)
单向认证,仅仅是客户端需要检验服务端证书是否是正确的,而服务端不会检验客户端证书是否是正确的。 双向认证,指客户端验证服务器端证书,而服务器也需要通过CA的公钥证书来验证客户端证书。
过程:
1.客户端say hello 服务端
2.服务端将证书、公钥等发给客户端
3.客户端CA验证证书,成功继续、不成功弹出选择页面
4.客户端将自己的证书和公钥发送给服务端
5.服务端验证客户端证书,如不通过直接断开连接
6.客户端告知服务端所支持的加密算法
7.服务端选择最高级别加密算法使用客户端公钥加密后发送给客户端
8.客户端收到后使用私钥解密并生成随机对称**key,使用服务端公钥加密发送给服务端
9.服务端使用私钥解密,获取对称**key
10.后续客户端与服务端使用该**key进行加密通信