2014-11-04 71 views
0

我尝试使用node.js中的快递httpsnode.js/Https与快递

这里这部分相关代码:

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); 
}); 

我做什么了?

+0

你能提供更多信息吗?你是通过本地主机连接吗?如果没有,您是否允许在防火墙/安全软件中使用5008传入流量?它根本没有连接或者你有HTTP响应吗? – mscdex 2014-11-04 14:07:22

+0

@mscdex:端口是开放的,我不通过本地主机连接(其他机器调用我的服务器..)。我添加了一个代码,对我来说工作正常,但是输入了ssl部分。谢谢。 – 2014-11-04 14:23:10

+0

,并且在测试时在地址前添加“https://”,以便它是“https://example.org:5008”? – mscdex 2014-11-04 14:26:17

回答

0

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

+0

谢谢,当我使用'https:// example.org'它给我以下错误:'javax.net.ssl.SSLHandshakeException:远程主机关闭(在我的Java客户端) – 2014-11-04 15:22:48

+0

你错过了你的自定义端口:'https:// <你的主机名或IP>:5008' – mscdex 2014-11-04 15:53:56

+0

不,我改变了它,现在我的服务器监听到443。给我这个错误.. – 2014-11-04 15:55:07