https工作原理

文章目录

  • https工作原理
  • CA对证书进行签名
  • 自签名证书(self-signed certificate)
  • 总结


开始之前,必须要理解两点:

  • 这里有一对key(public key,private key)使用public key加密的数据只能通过对应的private key进行解密。
  • 能够获取证书机构(Certificate Authoriaztion)的public key的浏览器,在获取到具有签名(public key进行加密)的数据时,能够验证该数据是从能够获取证书机构的private key的服务器中发送过来的。

https工作原理

https工作原理_第1张图片

图1 https工作原理图
  1. 浏览器请求youtube服务器
  2. youtube服务器返回使用google ca 进行签名之后的证书(certificate)
  3. 浏览器有google ca的public key,能够验证该证书就是从youtube server(能获取google ca的private key)中发送过来的。
  4. 浏览器发送请求告诉youtube server,浏览器信任google ca并确定就是youtube server发送过来的, 并创建一个private key(使用public key加密)发送给youtube server。
  5. 现在youtube server就有浏览器的private key,就可以使用private key进行解密数据了。
  6. 现在,浏览器与youtube server就可以使用这一对(private key,public key)key进行加密解密了。

CA对证书进行签名

https工作原理_第2张图片

图2 CA对证书进行签名
  1. youtube server 发送证书签名请求。希望google ca 对证书进行签名
  2. google ca使用private key对certificate(拥有youtube server的public key)进行签名。(拥有google ca 的public key的浏览器就可以验证证书就是google ca使用private key进行签名的)

自签名证书(self-signed certificate)

有些时候,比如测试时,可以不需要受信的certificate authority的证书。
https工作原理_第3张图片

图6 自签名证书
  1. 你的应用服务器server发送证书签名请求。
  2. 你的证书机构对证书进行签名。
  3. 浏览器获取到证书时,发现这个证书不是受信的。就会询问你是否信任这个证书并继续。

https工作原理_第4张图片

如何创建自签名证书

总结

要理解https的工作原理。必须理解

  • 签名机制的工作原理
  • 使用public key,private key进行加密解密数据。

你可能感兴趣的:(Http权威指南,个人思考,https)