第一步:创建一个项目目录,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)。
若点击地址栏的感叹号,便可在弹出框中可以查看证书,如下:
偷了下懒,直接用了web performance in action这本书第一章节的代码来改成一个
https连接。有需要的可以看看code on git。
参考资料:
https://medium.com/@nileshsingh/everything-about-creating-an-https-server-using-node-js-2fc5c48a8d4e
https://www.akadia.com/services/ssh_test_certificate.html
转载请注明出处!