使用nodejs搭建HTTPS server

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

npm install express --save

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

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

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

  1. 生成Private Key 和 CSR。
openssl req -new -newkey rsa:2048 -nodes -out mydomain.csr -keyout private.key
  1. 利用上一步生成的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/@nileshsingh/everything-about-creating-an-https-server-using-node-js-2fc5c48a8d4e
https://www.akadia.com/services/ssh_test_certificate.html

转载请注明出处!

你可能感兴趣的:(使用nodejs搭建HTTPS server)