【问题标题】:node.js / Https with expressnode.js / Https 与 express
【发布时间】:2014-11-04 13:36:11
【问题描述】:

我尝试在node.jshttps 中使用express。

这里是这部分的相关代码:

var express = require("express");
var app = express();
var https = require('https');
var privateKey = fs.readFileSync('./sslcert/mykey.key', 'utf8');
var certificate = fs.readFileSync('./sslcert/mssl.crt', 'utf8');
var credentials = {key: privateKey, cert: certificate};
https.createServer(credentials, app).listen(5008, function(res){
console.log("Listen to: " + port)
});

在控制台中,它打印 Listen to: 5008,但我没有看到我的服务器收到任何请求,即使我发送了一些请求。

当我使用没有 ssl 扩展的 express 时,一切正常。

编辑:

这里的代码适用于端口 5008,但没有 ssl 部分:

var express = require("express");
var app = express();
app.listen(5008, function () {
    console.log("Listening on " + port);
});

我做错了什么?

【问题讨论】:

  • 您能提供更多信息吗?你是通过 localhost 连接的吗?如果没有,您是否允许防火墙/安全软件中 5008 上的传入流量?它根本没有连接,还是您收到 HTTP 响应?
  • @mscdex: 端口是开放的,我没有通过 localhost 连接(其他机器调用我的服务器..)。我添加了一个对我来说可以的代码,但带有 ssl 部分。谢谢。
  • 并且您在测试时在地址前添加https://,所以它是https://example.org:5008
  • @mscdex:不,https 用于端口 443,不是吗?我检查它:http://example.org:5008

标签: javascript node.js express https


【解决方案1】:

您必须指定https://,否则浏览器/客户端在连接时将不知道使用SSL,无论使用什么端口(默认为443或其他)。

【讨论】:

  • 谢谢,当我使用 https://example.org 时,它给了我以下错误:javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake(在我的 Java 客户端中)
  • 不,我改变了它,现在我的服务器监听 443。它仍然给我这个错误..
  • 它给了我以下信息:* About to connect() to <My host name> port 443 (#0) * Trying <The IP>... connected ...* SSL connect error curl: (35) SSL connect error
猜你喜欢
  • 2013-10-09
  • 1970-01-01
  • 2015-07-23
  • 2019-07-17
  • 2012-10-22
  • 1970-01-01
  • 2016-12-09
  • 2013-03-04
  • 2011-11-19
相关资源
最近更新 更多