http传输以下:算法
此时信息是明文传输,若是信息被人截获,则能看到里面的内容,极不安全 segmentfault
那就须要对内容加密,过程以下:浏览器
但此方案仍会存在安全隐患,在第三步和第四步之间,若是被一个中间人获取到它的公钥,浏览器使用中间人的公钥加密对称密钥,发送给服务器,中间人再次截获数据,获取其中的对称密钥。浏览器和服务器在双方数据都不知情的状况下,数据内容被窥探。 安全
问题的重点在于,第三步浏览器没法获得公钥的来源的合法性,这就须要数字证书了。这就是https的解决方案
服务端单单发送公钥,而是发送包含公钥的数字证书。
数字证书由第三方机构颁发,浏览器已经维护了全部知名的第三方机构。 服务器
浏览器如何肯定公钥的合法性?网络
公钥和私钥的相关知识
公钥和私钥是一对密钥对,它们能够互解密。使用公钥加密,私钥解密。能有效保证数据的安全性。可是若是使用私钥加密,公钥解密呢,则能够肯定来源的合法性。由于只有知道私钥才能加密,若是咱们能使用公钥解密获得正常内容(内容是否正确就是比较hash1和hash2),那么对方必定是拥有私钥的主机,而私钥是由第三方颁发给服务器的,这就是数字签名。加密
OSI七层
物理层->数据链路层->网络层->传输层->会话层->表示层->应用层
https的ssl位于传输层和应用层之间spa