Android - https

https 是什么?

https是更安全的http协议(http+ssl)

ssl是加密相关的协议

https做什么?

假设在通信过程中需要传递一些敏感信息(用户名,密码等),如果使用http那么这些信息被截获之后,因为http是明文传递,所以就会出现信息泄露的问题。

为了解决这类问题,就出现了https。

https怎么做?

准备工作:

服务器需要有ca证书;这个证书需要向特定的组织申请,比如:GlobalSign,GeoTrust等,这个证书实质上是一个public key + 一个private key;我们可以把public key比作一把锁,那么private key就是这把锁的钥匙。

另外这些组织生成的证书会被加到chrome,火狐等浏览器的信任证书列表中。

ps:这个锁跟钥匙还是比较贵的,一年大概6000块。。

https://common-buy.aliyun.com/?spm=5176.7968328.231195..4366815bhOY8tI&commodityCode=cas#/buy

具体流程

准备工作完成之后,我们的服务端就有了一把锁跟一个钥匙

  1. chrome中输入www.baidu.com
  2. 服务器返回百度的证书(public key(包含百度公司相关的信息等等)也就是“锁”)
  3. chrome查看信任列表中是否有该证书(public key )
  4. 如果没有,提示https warning;结束
  5. 如果有,那么chrome生成一个随机串,用服务器给的“锁”把该随机串锁上,之后给到服务器
  6. 服务器拿到数据使用“钥匙”打开”锁”,获取到随机串
  7. 到这里chrome跟服务器就有了一段相同的字符串
  8. 服务器拿到response之后用该字符串加密之后返回给chrome
  9. chrome根据该字符串解密之后拿到数据
  10. done。。
细节:
  • http 80 https 443
  • http 免费 https:要买锁,付费

参考:

https://juejin.im/entry/58d7635e5c497d0057fae036

https://blog.csdn.net/lmj623565791/article/details/48129405

https://www.jianshu.com/p/ca7df01a9041