node 创建本地 https 服务
node
自带了https
模块,跟http
模块的使用类似,不过在创建服务时使用CA
证书。
mkcert
mkcert 是一个简单的工具,用于制作本地信任的开发证书。它不需要配置。在项目中安装后就可以直接使用。
npm i mkcert -D
这个库非常简单,只有两个指令
create-ca
: 创建证书颁发机构create-cert
: 创建证书(需要先根据 create-ca 命令创建的文件才能创建)
上面两个指令都设置有默认的配置,可以直接运行生成证书。
npx mkcert create-ca
npx mkcert create-cert
此时根目录下会生成 4 个文件
-ca.crt
-ca.key
-cert.crt
-cert.key
此时密钥是cert.key
文件,证书是cert.crt
文件。
此时便可以根据生成的文件来启动https
使用 https 模块
const https = require("https");
const fs = require("fs");
const options = {
// 私钥
key: fs.readFileSync(__dirname + "/cert.key"),
// 由私钥生成的证书
cert: fs.readFileSync(__dirname + "/cert.crt"),
};
const app = https.createServer(options, (req, res) => {
res.end("https server");
});
app.listen(8080);
使用 express 创建服务
const https = require("https");
const express = require("express");
const fs = require("fs");
const options = {
// 私钥
key: fs.readFileSync(__dirname + "/ca/cert.key"),
// 由私钥生成的证书
cert: fs.readFileSync(__dirname + "/ca/cert.crt"),
};
const app = express();
app.get("*", (req, res) => {
res.send("https server");
});
// ...
https.createServer(options, app).listen(8080);