Https流程和原理

一、HTTPS简介

HTTPS:http+ssl(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
在这里插入图片描述
如上图所示 HTTPS 相比 HTTP 多了一层 SSL/TLS

SSL(Secure Socket Layer,安全套接字层):1994年为 Netscape 所研发,SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。

TLS(Transport Layer Security,传输层安全):其前身是 SSL,它最初的几个版本(SSL 1.0、SSL 2.0、SSL 3.0)由网景公司开发,1999年从 3.1 开始被 IETF 标准化并改名,发展至今已经有 TLS 1.0、TLS 1.1、TLS 1.2 三个版本。SSL3.0和TLS1.0由于存在安全漏洞,已经很少被使用到。TLS 1.3 改动会比较大,目前还在草案阶段,目前使用最广泛的是TLS 1.1、TLS 1.2。
CA机构:证书颁发机构(CA, Certificate Authority)即颁发数字证书的机构。
基本上所有https网站都是向CA中心申请的证书。证书可以使用自己生成,也可以向专门的https证书提供商进行购买。这两种的区别是自己生成的证书是不被浏览器信任的,浏览器获取到之后无法进行验证是否可信,所以就给出不安全的提示,需要点击信任之后才能继续访问;而因为浏览器中预置了一些https证书提供商的证书,在浏览器获取到服务器的https证书进行验证的时候就知道这个https证书是可信的。

二、HTTPS工作流程

流程图(图片来自网络)
在这里插入图片描述

2.1 准备工作

向CA机构申请证书。

  1. 服务器自己生成一对非对称加密的公钥s.pub和私钥s.pri,将公钥发给CA机构申请证书;
  2. CA机构获取到服务器的私钥s.pub之后,生成公私钥C.pub、c.pri,并使用C.pri对服务器的S.pub签名生成CA证书;
  3. CA将证书交给服务器;
  4. 浏览器内置CA根证书CA公钥C.pub。

2.2 工作流程

  1. 客户端(通常是浏览器)先向服务器发出加密通信的请求;
  2. 服务器收到请求,然后响应 (server Hello),将证书发送给客户端;
  3. 客户端收到证书后使用CA机构的内置根证书校验服务端返回的证书是否有效;有效则继续往下执行,无效则HTTPS传输就无法继续。
  4. 如果公钥合格,那么客户端会生成一个随机值,这个随机值就是用于进行对称加密的密钥,我们将该密钥称之为client key,即客户端密钥,这样在概念上和服务器端的密钥容易进行区分。然后用服务器的公钥对客户端密钥进行非对称加密,这样客户端密钥就变成密文了,至此,HTTPS中的第一次HTTP请求结束。
  5. 客户端会发起HTTPS中的第二个HTTP请求,将加密之后的客户端密钥发送给服务器。
  6. 服务器接收到客户端发来的密文之后,会用自己的私钥对其进行非对称解密,解密之后的明文就是客户端密钥,然后用客户端密钥对数据进行对称加密,这样数据就变成了密文。
  7. 然后服务器将加密后的密文发送给客户端。
  8. 客户端收到服务器发送来的密文,用客户端密钥对其进行对称解密,得到服务器发送的数据。这样HTTPS中的第二个HTTP请求结束,整个HTTPS传输完成。

总结:
准备工作:完成申请证书等准备工作
第一次:http传输,返回证书
第二次:客户端向服务器发送使用服务器公钥加密的对称私钥给服务端;
第三次:使用客户端生成的对称私钥进行加密传输数据。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值