node.js搭建https服务器

Posted 追风逐月

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node.js搭建https服务器相关的知识,希望对你有一定的参考价值。

HTTPS简介

  HTTPS:(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。另外在https的站点中是不允许请求http的接口的。

HTTPS和HTTP的区别

  • https协议需要到ca申请证书,一般免费证书很少,需要交费。

  • http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

  • http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

  • http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

openssl生成证书文件

  只要安装了git客户端就会有openssl

  检测openssl是否安装

openssl version -a

    接下来开始生成证书:

#1、生成私钥key文件:
openssl genrsa -out privatekey.pem 1024

#2、通过私钥生成CSR证书签名  (需要填一些信息、可直接回车)
openssl req -new -key privatekey.pem -out certrequest.csr

#3、通过私钥和证书签名生成证书文件 
openssl x509 -req -in certrequest.csr -signkey privatekey.pem -out certificate.pem

执行完第三条命令会看到:

  Signature ok

表示生成成功,最终看到如下三个文件

  • privatekey.pem: 私钥

  • certrequest.csr: CSR证书签名

  • certificate.pem: 证书文件

Node.js修改启动文件:app.js

~ vi app.js

//最下面
var https = require(‘https‘)
    ,fs = require("fs");

var options = {
    key: fs.readFileSync(‘./privatekey.pem‘),
    cert: fs.readFileSync(‘./certificate.pem‘)
};

https.createServer(options, app).listen(3011, function () {
    console.log(‘Https server listening on port ‘ + 3011);
});

启动服务器:

  Express server listening on port 3000

  Https server listening on port 3011

常见问题:

1、Failed to load resource: net::ERR_INSECURE_RESPONSE

   这个是因为你用的证书不正规,让浏览器给拦截掉了,打开你的控制台并点击里面的URL。它将带你进入API页面,然后在页面中接受SSL证书,返回你的应用页面并重新加载。

 

 

 

以上是关于node.js搭建https服务器的主要内容,如果未能解决你的问题,请参考以下文章

Node.js 搭建 https 协议 服务器

iKcamp|基于Koa2搭建Node.js实战(含视频)? 代码分层

vue.js初级教程--02.环境搭建

Node.js JavaScript 片段中的跳过代码

重学Node.js 第1&2篇本地搭建Node环境并起RESTful Api服务

webstorm搭建node服务器