Https原理简介

重点前置

1、签名:指的是浏览器端把发送的内容通过单向加密的方式进行加密(只能正向加密,不能解密的算法,如MD5,tip:MD5现在有解密方式),然后把加密后的字符串和内容一放在一起的过程叫加签。加签的主要作用是确保发生的内容不会被篡改,需要的东西有 内容和私钥
2、数字证书:主要是确保发送者是正确的人,不是黑客中途拦截而伪造的公私钥,需要的东西有第三方认证机构(CA)颁发的证书,数字证书中有:发送者的公钥,内容、颁发机构的公钥、有效期等

具体流程

在这里插入图片描述
我们以访问 www.helloworld.net 网站为例,讲解 https 的过程

此过程分为 3 个阶段,我们在下面描述此 3 个阶段

访问 www.helloworld.net 的过程 阶段如下

网站申请证书阶段

网站向 CA 机构申请数字证书(需要提交一些材料,比如域名)
CA 向证书中写入摘要算法,域名,网站的公钥等重要信息
CA 根据证书中写入的摘要算法,计算出证书的摘要
CA 用自己的私钥对摘要进行加密,计算出签名
CA 生成一张数字证书,颁发给了 www.helloworld.net
网站的管理员,把证书放在自己的服务器上
浏览器验证证书阶段

浏览器在地址栏中输入 https://www.helloworld.net,并回车
服务器将数字证书发送给浏览器
浏览器用操作系统内置的 CA 的数字证书,拿到 CA 的公钥
浏览器用 CA 公钥对 www.helloworld.net 的数字证书进行验签
具体就是,浏览器用 CA 公钥,对 helloworld 的数字证书中的签名进行解密,得到摘要 D1
浏览器根据 helloworld 数字证书中的摘要算法,计算出证书的摘要 D2
对比 D1 和 D2 是否相等。
如果不相等,说明证书被掉包了
如果相等,说明证书验证通过了。
协商对称加密密钥阶段

浏览器验证数字证书通过以后
浏览器拿到数字证书中的公钥,也就是 www.helloworld.net 网站的公钥
浏览器有了网站的公钥后,就用公钥进行对密钥S 进行加密,加密以后的密文发送给服务器
服务器收到密文后,用自己的私钥进行解密,得到密钥S
此后浏览器,服务器双方就用密钥S 进行对称加密的通信了。

参考链接:https://my.oschina.net/helloworldnet/blog/5587819

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值