另一种选择是使用pem库中的createCertificate
类方法生成证书。
具体步骤如下:
如果您的系统中没有安装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)
})
或者使用express(在服务器根目录的命令行中输入以下命令: 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,将函数改为箭头函数