https是一种协议:Https安全协议
https是一种协议:Https安全协议1、服务端收到客户端的加密数据后,用自己的私钥对密文进行解密,然后得到 client.random server.random client.random2、HASH值,并与传过来的HASH值做对比确认是否一致 2、随机密码加密一段握手信息(握手消息 握手消息Hash值)给客户端5、客户端接收消息1、建立TCP连接 2、支持的协议版本(TLS/SSl) 3、客户端申城随机数client.random 4、客户端支持的加密算法 5、SESSIONID 用于保持同一个会话2、服务器收到请求响应1、确认加密通道协议版本 2、服务器生成随机数server.random 3、确认使用的加密算法 4、服务器证书(部署到web服务器证书)3、客户端收到证书进行验证1、验证证书是否是上级 CA 签发的 在验证证书的时候,浏览器会调用系统的证书管理器 接口对证书路径中的所有证书一级一级的进行验证,只有路径
前提由于 HTTP 协议通信的不安全性,所以人们为了防止信息在传输过程中遭到泄漏或者篡改,就想出来对传输通道进行加密的方式 https。
介绍https 是一种加密的超文本传输协议,它与 HTTP 在协议差异在于对数据传输的过程中,https对数据做了完全加密。由于 http 协议或者 https 协议都是处于 tcp 传输层之上,同时网络协议又是一个分层的结构,所以在 tcp 协议层之上增加了一层 SSL(Secure Socket Layer,安全层)或者 TLS(Transport Layer Security) 安全层传输协议组合使用用于构造加密通道;
我这边是在阿里云上申请的免费证书,直接下载下来部署到web服务器即可!
1、客户端发起请求
1、建立TCP连接
2、支持的协议版本(TLS/SSl)
3、客户端申城随机数client.random
4、客户端支持的加密算法
5、SESSIONID 用于保持同一个会话
2、服务器收到请求响应
1、确认加密通道协议版本
2、服务器生成随机数server.random
3、确认使用的加密算法
4、服务器证书(部署到web服务器证书)
3、客户端收到证书进行验证
1、验证证书是否是上级 CA 签发的 在验证证书的时候,浏览器会调用系统的证书管理器
接口对证书路径中的所有证书一级一级的进行验证,只有路径中所有的证书都是受信的,
整个验证的结果才是受信
2、服务端返回的证书中会包含证书的有效期,可以通过失效日期来验证 证书是否过期
3、验证证书是否被吊销了
4、验证通过后,客户端会征程一个随机数client.random2,客户端根据之前的:client.random server.random client.random2生成堆成密钥然后使用证书中的
公钥进行加密,同时根据协商好的HASH算法,取出握手消息中的Hash值,然后用随机数加密:握手消息 握手消息Hash值(签名)一起发送给服务端
4、服务端接收随机数
1、服务端收到客户端的加密数据后,用自己的私钥对密文进行解密,然后得到
client.random server.random client.random2、HASH值,并与传过来的HASH值做对比确认是否一致
2、随机密码加密一段握手信息(握手消息 握手消息Hash值)给客户端
5、客户端接收消息
1、解密握手信息的HASH值,如果与服务端一致,握手过程结束
2、之后所有的通信数据将由之前交互过程中生成的client.random、server.random、client.random2
通过算法得出session key,作为后续交互过程的密钥。