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
具体流程
准备工作完成之后,我们的服务端就有了一把锁跟一个钥匙
- chrome中输入www.baidu.com
- 服务器返回百度的证书(public key(包含百度公司相关的信息等等)也就是“锁”)
- chrome查看信任列表中是否有该证书(public key )
- 如果没有,提示https warning;结束
- 如果有,那么chrome生成一个随机串,用服务器给的“锁”把该随机串锁上,之后给到服务器
- 服务器拿到数据使用“钥匙”打开”锁”,获取到随机串
- 到这里chrome跟服务器就有了一段相同的字符串
- 服务器拿到response之后用该字符串加密之后返回给chrome
- chrome根据该字符串解密之后拿到数据
- done。。
细节:
- http 80 https 443
- http 免费 https:要买锁,付费
参考:
https://juejin.im/entry/58d7635e5c497d0057fae036