HTTP和HTTPS
http和https的差别
谈到https和http的差别,首先直观上我们可以看到主流浏览器都会给出https和http协议的标识,从中可以明显感觉到https是一种相对安全的协议。
那么安全的具体含义是什么呢,其实https本身并不是一个独立的协议,而是由http和加密协议组成的(例如SSL/TLS协议)。
HTTP协议和HTTPS协议
https连接的建立过程
从中我们看出,https使用加密协议确保了数据传输过程中的安全性,起到了防监听,防篡改,防伪装的作用,那么加密协议在https连接的建立过程怎样起作用的?
https连接的建立过程上面是一个图示过程,我们一步步分析
第一步,第二步:前面两步没有问题,因为存在许多符合规范的加密协议,客户端与服务器先要确定一个加密协议。
第三步:服务器需要给出CA证书,我们只需要知道这个证书包含了服务器的公钥,相关信息和签名,并且可以通过这些信息证明服务器的有效性,具体这个证书是如何颁发给服务器的,见下文。
第四步:客户端根据CA证书验证证书和公钥的有效性
第五步:客户端随机生成一个用于对称加密的秘钥,用服务器给的公钥进行加密,传送到服务器(即使被截获也无法破译,因为黑客不知道服务器的私钥)
第六步:服务器用私钥解析出该对称加密秘钥,然后用该秘钥对要发送的数据进行加密
连接建立之后服务器可以和客户端之间互相发送通过对称秘钥加密的数据,由于第三者不知道秘钥,自然也就无法破译TCP数据包中的请求,连接的安全性就得到了保证
相关问题
-
什么是CA证书
CA证书即CA(Certificate authority)颁发的证书,因为该机构足够权威,所以它颁发的证书是足够被信任的 -
CA证书是如何颁发的
首先你要向CA申请证书,然后CA审核通过之后,会对所有信息的摘要(包括公钥,组织信息,个人信息,CA 本身的信息、有效时间、证书序列号等)使用CA的私钥进行签名,这样客户端就可以用CA的公钥验证该CA证书 -
服务器是否需要向CA提供私钥
在任何情况下都不要传输私钥,服务器也不需要向CA提供 -
根证书是什么
颁发者与使用者相同的CA证书,也叫自签名证书 -
https和http协议还有什么差别
首先两个协议使用不同的端口,https使用443端口,http使用80端口;在请求时间上,https建立连接的过程由于多了几步,会比http长一点,但是之后的请求就差不多了。甚至由于某些公司网关或者运营商无法监控到流量内容,对于原本需要添油加醋的数据包直接放行,会导致https比http略快一点 -
既然https相当于http加加密协议,那么https中的http协议和http协议完全一致吗
https中可以使用http/2协议,而http协议一般指的是1997年发布的http/1.1协议 -
我想把我的网站升级到https(那么,哪里才能买到呢)
http://www.ruanyifeng.com/blog/2016/08/migrate-from-http-to-https.html
参考:
https://www.geeksforgeeks.org/whats-difference-http-https/
https://www.cnblogs.com/handsomeBoys/p/6556336.html
http://www.ruanyifeng.com/blog/2016/08/http.html
http://www.ruanyifeng.com/blog/2016/08/migrate-from-http-to-https.html
http://www.ruanyifeng.com/blog/2011/02/seven_myths_about_https.html