0--介绍:
现在人们对网络的依赖越来越重,那么对于网络安全的要求也越来越高,传统的http协议实现了网络中的快速传输,完整传输,保证了信息的完整性,但是对于网络的安全性却没有那么强,很容易被人劫持,伪造;https在传输层(又说安全套接字层)用了SSL 加密使传输变得更安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
1--区别:
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。(证书和签名是成对出现的,可以证明一个网站的身份,一般是权威机构发布的)
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。(这个端口这的是熟知端口,也就是说你的网站是https协议浏览器会默认访问你的443端口)
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
2--为什么要用:
据说google马上就不访问没有https的网站了,据说google的搜索引擎会把https的网站排在前面,没错据说这些据说都是真的;
3--自己给自己发证书:
虽然自己发证书是不科学的,主要是没人承认;但是权威的https是收费的而且还挺贵;所以大家先用一个自己生成的实验一下;
1.用工具生成证书openssl,openssl工具直接网上有;产生私钥命令:openssl genrsa 1024>key.pem
2.产生公钥,产生公钥是基于私钥的,具体命令:openssl req -x509 -new -key key.pem > key-cert.pem
4--用一个简单的node小程序实验一下:
var https=require("https") var fs = require('fs') var option={ key:fs.readFileSync("./key.pem"), cert: fs.readFileSync("./key-cert.pem") } https.createServer(option,function(req,res){ console.log(req) res.end("hello world") }).listen(3000)
这段代码是node代码,需要V8引擎来解释