另一种方法是使用类的 createCertificate 方法通过 pem 库生成证书。
流程如下:
如果您的系统中尚未安装 openssl,例如对于 Windows 10,可以在此处找到源代码的编译版本(似乎是最开放的版本):https://curl.se/windows/ 它是如何编译和保护的解释在这里:https://wiki.openssl.org/index.php/Binaries。对于源https://www.openssl.org/community/binaries.html
对于 Windows,您可能需要将 openssl.bin 文件的目录添加到系统环境路径变量 (https://www.architectryan.com/2018/08/31/how-to-change-environment-variables-on-windows-10/) 或将文件的位置传递给 PEM 库。
使用安装 pem(此处的文档:https://github.com/Dexus/pem
npm i pem
在服务器根目录的命令行中。
从文档中您可以看到,可以通过以下方式简单地创建一个带有密钥的简单 https 服务器:
const https = require('https')
const pem = require('pem')
pem.createCertificate({ days: 1, selfSigned: true }, (err, keys) => {
if (err) {
throw err
}
https.createServer({ key: keys.clientKey, cert: keys.certificate }, (req, res) => {
res.end('o hai!')
}).listen(443)
})
或使用快递
npm i express
在服务器根目录的命令行):
const https = require('https')
const pem = require('pem')
const express = require('express')
pem.createCertificate({ days: 1, selfSigned: true }, (err, keys) => {
if (err) {
throw err
}
const app = express()
app.get('/', (req, res) => {
res.send('o hai!')
})
https.createServer({ key: keys.clientKey, cert: keys.certificate }, app).listen(443)
})
将 var 的 const 改成合适的,把函数改成箭头函数