Https

Https_第1张图片
https.jpg

我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。
HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。

  1. 客户端发起https请求。(浏览器 --> 服务器)
    在浏览器中输入https网址,连接到server的443端口。

  2. 服务器的配置(服务器自己)
    采用https协议的服务器必须要有一套数字证书。这套证书其实就是一对公钥和私钥。(公钥是锁头,谁都能用,但是只有你可以开锁。)
    自己制作的数字证书:需要客户端验证通过,才可以继续访问。
    受信任的公司申请的证书:不会弹出提示页面。

  3. 传送证书(服务器 --> 客户端)
    这个证书其实就是公钥,只是包含了如证书的颁发机构,过期时间等等。

  4. 客户端解析证书(客户端内部)
    由客户端的TLS完成

  • 验证公钥是否有效,比如颁发机构和过期时间等。
  • 异常,警告框,提示证书存在问题。
  • 正常,生成一个随机值。
  • 使用证书对随机值进行加密。


    Https_第2张图片
    TLS解析证书.png
  1. 传送加密信息(客户端 --> 服务器)
    这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。

  2. 服务端解密信息(服务器内部)
    服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密。所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。

  3. 传输加密后的信息(服务端 --> 客户端)
    这部分信息是服务端用私钥加密后的信息,可以在客户端被还原。

  4. 客户端解密信息
    客户端用之前生成的私钥解密服务端传过来的信息,于是获取了解密后的内容。

你可能感兴趣的:(Https)