http/1.x,http/2,https,SSL,TLS
Posted smalljunjun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了http/1.x,http/2,https,SSL,TLS相关的知识,希望对你有一定的参考价值。
http协议封装的数据包->tcp/ip->服务器 缺点:数据包中途被窃取或者被篡改。
http协议封装的数据包->ssl加密->tcp/ip->服务器:缺点:虽然安全,但是开销变大,传输数据变慢。
http的连接很简单,是无状态的;https协议是由ssl+http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
https如何保证数据的传输加密?
https在传输的过程中涉及三个密钥:
服务器端用的公钥和私钥,用来进行非对称加密。
客户端产生的随机密钥,用来进行对称加密。
分为8步:
1.客户端向服务器发起HTTPS请求,连接到服务器的443端口。
2.服务器端有一个密钥对,即公钥和私钥,是用来进行非对称加密使用的,服务器端保存着私钥,不能将其泄露,公钥可以发送给任何人。
3.服务器将自己的公钥发送给客户端。
4.客户端对服务端发来的公钥进行检查,验证其合法性,如果发现公钥有问题,https传输就无法继续。然后会生成一个随机值,这个随机值就是客户端密钥,然后用服务器公钥对客户端密钥进行非对称加密,这个客户端密钥就是密文,第一次https请求就结束了。
5.服务端接收到收到客户端的密文,然后用私钥进行非对称加密,解密之后的明文就是客户端密钥,然后用客户端密钥对数据进行加密,这样数据就变成了密文。
6.服务端数据加密后的密文发给客户端。
7.客户端收到服务器发来的密文,用客户端的密钥来进行对称解密,得到服务器端发来的数据,这样第二次http请求就结束了。
以上是关于http/1.x,http/2,https,SSL,TLS的主要内容,如果未能解决你的问题,请参考以下文章
Jetty 9.3 SSL-ALPN-HTTP2 错误 ERR_EMPTY_RESPONSE 仅使用 HTTPS