HTTPS流程详解

HTTPS流程备忘录

前言

虽然项目中经常会使用HTTPS传输数据,但是对其原理流程一知半解,在观摩了其它大佬HTTPS的博客之后,自己大概梳理了一下HTTPS的主要流程,以此备忘。
简单来说HTTPS是在HTTP协议的基础上,加了一层SSL证书加密,用来防止内容被中间者监听以及修改,解决了HTTP明文传输的不安全性,默认端口号为443。

效果预览

通过 Fiddler Everywhere 来对HTTP请求进行抓包,发现使用了HTTP的请求是无法抓包得到数据的。

流程描述

  1. 网站的管理员向CA机构申请证书,并提供自己网站的公钥及域名等相关信息
  2. CA机构根据提供的公钥、域名、有效时长等信息,制作数字证书,并使用私钥加密,返回给网站,由网站自行配置
  3. 用户的操作系统自带了CA机构的公钥,存储在用户本地
  4. 客户端浏览器第一次访问网站,网站服务器将返回之前CA机构颁发的加密后的数字证书
  5. 客户端浏览器通过操作系统自带的CA机构公钥对网站第一次返回的加密数字证书解密,如果解密成功,说明信息是目标服务器端的,并且没有被中间人修改,还得到了目标网站的公钥及域名相关信息;如果解密失败,则说明该信息不是从目标网站传输过来,或者已经被中间人进行修改。
  6. 客户端浏览器将生成一个用来对称加密的密钥,并使用之前解密得到的目标网站的公钥对自己生成的密钥经行加密,并发送给目标服务器
  7. 服务器将使用私钥对客户端浏览器的数据进行解密,得到客户端浏览器生成的对称密钥
  8. 后续的请求中,客户端浏览器都会将数据通过之前生成的对称加密的密钥进行加密,发送服务器端,而服务器端也会通过之前解密的客户端浏览器生成的密钥

查看CA证书

Windows

在CMD控制台输入以下命令

certmgr.msc

Windows 10证书查看
Windows查看CA证书
这样就能查看自己的Windows操作系统的CA证书

Mac OS X

点击应用 “钥匙串访问”

点击系统根证书,种类点击证书,结果如下图所示

macOS证书

Linux

发行版过多,不易举例

查看浏览器(Firefox)网站的证书信息

查看浏览器的证书信息
点击网址栏上面的锁图标

在这里插入图片描述
点击那个箭头

网站信息
点击更多信息

浏览器证书详细信息
这样就显示了详细的证书信息,可以对比下系统自带的CA证书信息,看看是否有同一个机构的证书

总结

HTTPS使用了对称加密跟非对称加密混用的形式加密,并且是在第一次连接时使用非对称加密来安全交换密钥,再使用对称加密传输数据,既保证了安全又避免了非对称加密带来的性能问题。
笔者水平有限,如有勘误,还望指教。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值