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引擎来解释