【发布时间】:2016-07-20 02:43:33
【问题描述】:
我正在尝试启动 https node.js 服务器。
我首先按照本指南创建证书和密钥:
http://gaboesquivel.com/blog/2014/nodejs-https-and-ssl-certificate-for-development/
然后我将它们放在我的/app_name/security/keys 目录中。
要启动我的 https 服务器,我有以下内容:
const https = require('https'),
fs = require('fs');
if(app.get('env') === 'development') {
console.log('dev env!!'); //prints correctly
console.log('port: ' + port); //prints correctly
const options = {
key: fs.readFileSync('./security/keys/key.pem'),
cert: fs.readFileSync('./security/keys/cert.pem')
};
https.createServer(options, (req, res) => {
console.log('https good to go'); //this does not print out anything
}).listen(port);
}
当我转到https://localhost:3000时,页面抛出错误
This site can’t be reached
localhost unexpectedly closed the connection.
ERR_CONNECTION_CLOSED
但是服务器端控制台没有错误。此外,如果我去常规的localhost:3000,我会得到:
The localhost page isn’t working
localhost didn’t send any data.
ERR_EMPTY_RESPONSE
有人可以帮忙吗?
提前致谢!
---- 更新----
我现在在端口 443 上运行。最初我收到一个错误:
Error: listen EACCES 0.0.0.0:443 所以我跑了:
sudo NODE_ENV=development nodemon app
没有抛出任何错误。但是,当我转到https://localhost:443 时,我得到:
This site can’t be reached
localhost unexpectedly closed the connection.
【问题讨论】:
-
我猜这可能与端口有关,https通常适用于443端口。你可以试试。
-
如果没有给出端口,那么它在 443 工作。定义了端口常量。
-
知道了 - 我尝试在 443 上运行,但仍然收到
this site can't be reached。我用更多错误详细信息更新了我的问题。 -
关于端口,应该在 3000 上工作并不重要。当您生成密钥时,您将什么设置为 FQDN?另请提供有关您的系统的信息。
-
嗯..我可能不是。我指定的唯一特定于我的服务器信息的通用名称是
localhost.. 您能否提供一个链接,说明如何正确将其设置为 FQDN?