使用nodejs搭建HTTPS server

From 我的简书

第一步:创建一个项目目录,npm init初始化项目后,安装express。

npm install express --save

第二步:新建http.js文件,初始代码如下。

var express = require("express");
var app = express();
var fs = require('fs');

第三步:使用openssl 生成自签名证书(免费,本地测试使用),这里有两个步骤:

生成Private Key 和 CSR。

openssl req -new -newkey rsa:2048 -nodes -out mydomain.csr -keyout private.key

利用上一步生成的private.key和mydomain.csr生成自签名证书。

openssl x509 -req -days 365 -in mydomain.csr -signkey private.key -out mydomain.crt

第四步: 完善http.js。

var express = require("express");
var app = express();
var fs = require('fs');


var key = fs.readFileSync('private.key');
var cert = fs.readFileSync('mydomain.crt');

var options = {
    key: key,
    cert: cert
};
// Run static server
var https = require('https');
https.createServer(options, app).listen(8888); 

到此基本就大功告成了,在项目目录里写一个index.html, 最后在项目目录下run:

node http.js
最后打开浏览器,地址栏输入https://localhost:8888后浏览器会显示你的连接不安全
点击advance, 直接proceed就行了(chrome)。
若点击地址栏的感叹号,便可在弹出框中可以查看证书,如下:

SSL证书
偷了下懒,直接用了web performance in action这本书第一章节的代码来改成一个
https连接。有需要的可以看看code on git。

参考资料:
https://medium.com/@nileshsin…
https://www.akadia.com/servic…

转载请注明出处!

    原文作者:ylzsmallsun
    原文地址: https://segmentfault.com/a/1190000015150714
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞