详解https加密完整过程
step1: “客户”向服务端发送一个通信请求
“客户”->“服务器”:你好
step2: “服务器”向客户发送自己的数字证书。证书中有一个公钥用来加密信息,私钥由“服务器”持有
“服务器”->“客户”:你好,我是服务器,这里是我的数字证书
step3: “客户”收到“服务器”的证书后,它会去验证这个数字证书到底是不是“服务器”的,数字证书有没有什么问题,数字证书如果检查没有问题,就说明数字证书中的公钥确实是“服务器”的。检查数字证书后,“客户”会发送一个随机的字符串给“服务器”用私钥去加密,服务器把加密的结果返回给“客户”,“客户”用公钥解密这个返回结果,如果解密结果与之前生成的随机字符串一致,那说明对方确实是私钥的持有者,或者说对方确实是“服务器”。
“客户”->“服务器”:向我证明你就是服务器,这是一个随机字符串 //前面的例子中为了方便解释,用的是“你好”等内容,实际情况下一般是随机生成的一个字符串。
“服务器”->“客户”:{一个随机字符串}[私钥|RSA]
step4: 验证“服务器”的身份后,“客户”生成一个对称加密算法和密钥,用于后面的通信的加密和解密。这个对称加密算法和密钥,“客户”会用公钥加密后发送给“服务器”,别人截获了也没用,因为只有“服务器”手中有可以解密的私钥。这样,后面“服务器”和“客户”就都可以用对称加密算法来加密和解密通信内容了。
“服务器”->“客户”:{OK,已经收到你发来的对称加密算法和密钥!有什么可以帮到你的?}[密钥|对称加密算法]
“客户”->“服务器”:{我的帐号是aaa,密码是123,把我的余额的信息发给我看看}[密钥|对称加密算法]
“服务器”->“客户”:{你好,你的余额是100元}[密钥|对称加密算法]
…… //继续其它的通信
上面的过程已经十分接近HTTPS的真是通信过程了,完全可以按照这个过程去理解HTTPS的工作原理。相信大家都应该能明白HTTPS通信了。
原文链接:http://www.jianshu.com/p/2f6c93308370
(资源库 www.zyku.net)
您可能感兴趣的文章
- 05-09IIS8 通过web.config 实现http跳转到https
- 05-09接口测试 Fiddler 抓取 https
- 04-17IE浏览器 https不能访问的解决方案
- 04-08完美快速解决百度分享不支持HTTPS的问题
- 04-02Apache下.htaccess重写URL 实现http自动跳转https的方
- 04-01IIS7 IIS 7.5下http 做301重定向到https
- 03-12Apache服务器利用.htaccess重写URL实现http自动跳转ht
- 07-20百度分享不支持https的解决方法
- 02-10http跟https有什么区别
- 07-20帝国CMS7.5版后台认证码新增预加密验证功能,超安全
- 03-12帝国CMS灵动标签调用相关文章
- 03-31PHP获取文件后缀名的7种方法
- 12-23iwatch6开启心电图方法介绍
- 07-15帝国后台编辑器让远程保存图片默认为
- 03-15Sublime Text 3的Less2Css插件介绍与
- 01-11慧眼3D街景地图-慧眼3D街景地图应用软
- 09-19微信怎样取消核酸检测预约
- 04-16Dedecms修改MySql端口号的方法
- 01-28AirPods蓝牙耳机频繁断开解决方法
- 09-04掌上华医在哪里进入继续教育
最近更新
阅读排行
猜你喜欢
- 03-23opporeno5快速备份手机文件方法
- 11-26搜狗输入法如何设置键盘背景
- 07-21PHP实现生成PDF文件的方法基于FPDF类
- 01-17radionet-radionet应用软件功能介绍
- 06-15centos 7中设置tomcat 7为系统服务的
- 08-15Windows11开机记录查询步骤介绍
- 03-14miui13系统分屏设置方法
- 12-21iqooNeo5s怎么设置返回键
- 05-08VMware创建虚拟机装系统时报错 unsucc
- 03-31用 Python 元类的特性实现 ORM 框架