什么是 HTTPS
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。
HTTP 与 HTTPS 的区别
HTTP 是明文传输,HTTPS 通过 SSL\TLS 进行了加密
HTTP 的端口号是 80,HTTPS 是 443
HTTPS 需要到 CA 申请证书,一般免费证书很少,需要交费
HTTPS 的连接很简单,是无状态的;HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。
为什么要使用 HTTPS
前一段时间,公司要求对全栈使用 HTTPS,当时我还在想,HTTPS 不是只用于支付的环节吗,为什么要全栈都使用 HTTPS,真的是图样图森破其实使用 HTTPS 最主要的用处是以下两点:
建立一个信息安全通道,来保证数据传输的安全
确认网站的真实性,防止钓鱼网站
HTTPS 原理
在看 HTTPS 的时候,在 GOOGLE 搜索的大部分都是一些比较专业的术语,对于一个前端来说,对这些什么应用层、传输层的协议和各种服务器的信息都不是很了解,所以看的不是很明白也看不进去,于是,看到一篇文章:一个故事讲完https 表示勉强可以理解,/(ㄒoㄒ)/~~,于是对其详细的研究了下,对于前端理解 HTTPS 还是可以看一下的。
本文其实就是对这篇文章的理解,不知道其他小伙伴都是什么水平,我是看 HTTPS 原理比较吃力的
plan1:使用对称密钥
使用对称密钥
两人商量了一下,可以使用对称密钥进行加密。(对称密钥也就是加密和解密使用的是同一个密钥)
但是问题又来了既然网络是不安全的,那么最开始的时候怎么将这个对称密钥发送出去呢?如果对称密钥在发送的时候就已经被拦截,那么发送的信息还是会被篡改和窥视啊~
所以这种对称密钥的弊端就是,可能被中间人拦截,这样中间人就可以获取到了密钥,就可以对传输的信息就行窥视和篡改。
plan2:使用非对称密钥
双方必须协商一对密钥,一个私钥一个公钥。用私钥加密的数据,只有对应的公钥才能解密,用公钥加密的数据, 只有对应的私钥才能解密。