另一种方法是使用类的 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
或在服务器根目录的命令行中使用 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 更改为适当的,并将函数更改为箭头函数