Node.js + Express.js |尝试设置 HTTPS 服务器

Posted

技术标签:

【中文标题】Node.js + Express.js |尝试设置 HTTPS 服务器【英文标题】:Node.js + Express.js | Trying to set up a HTTPS server 【发布时间】:2019-06-07 19:59:39 【问题描述】:

我正在尝试使用 Node.js 和 Express.js 设置 HTTPS 服务器。

我目前正在尝试:

const filesystem = require('fs');
const express = require('express');
const server = express();
const http = require('http').Server(server);
const https = require('https');
const io = require('socket.io')(http);
require('./routes')(server);
require('./chat-logic')(io);

// Dummy cert
const privateKey  = filesystem.readFileSync('cert/key.pem', 'utf8');
const certificate = filesystem.readFileSync('cert/cert.pem', 'utf8');

const credentials = key: privateKey, cert: certificate;
const httpsServer = https.createServer(credentials, server);

server.use(express.static(__dirname + '/src'));
http.listen(3000, () => console.log('Listening on *3000'));
httpsServer.listen(3443, () => console.log('HTTPS on *3443'));

但是,我收到此错误:

_tls_common.js:134
      c.context.setKey(key, passphrase);
                ^

Error: error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt

我在这里做错了什么?

【问题讨论】:

我猜证书不正确。 @Prasheel 我如何获得证书? sslshopper.com/ssl-checker.html 【参考方案1】:

尝试在此行中提及您的密钥passphrase 或提供一个空字符串''

const credentials = key: privateKey, cert: certificate, passphrase: '??';

【讨论】:

不幸的是,这不起作用。错误还是一样。 您已将?? 替换为您的密码(如果存在)或传递了一个空的'' 字符串,但仍然无法正常工作。对吗? 我好像输错了密码...现在可以使用了,非常感谢!

以上是关于Node.js + Express.js |尝试设置 HTTPS 服务器的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Node.js / Express.js 中将中间件放在它自己的文件中

使用 Node.js 和 Express.js 在 MySQL 中删除给定值数组的多行

firebase node.js/express.js 添加多个firebase函数

在Javascript(node.js,express.js,ejs)中访问服务器端变量[关闭]

Node.js / Sequelize.js / Express.js - 如何插入多对多关联? (同步/异步?)

从 node.js/express.js 中的多个异步源构建对象