node.js/Https与快递
我尝试使用node.js
中的快递https
。node.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);
});
我做什么了?
您必须指定https://
,否则浏览器/客户端在连接时不知道使用SSL,无论使用哪个端口(默认为443或其他)。
谢谢,当我使用'https:// example.org'它给我以下错误:'javax.net.ssl.SSLHandshakeException:远程主机关闭(在我的Java客户端) – 2014-11-04 15:22:48
你错过了你的自定义端口:'https:// :5008' – mscdex 2014-11-04 15:53:56
不,我改变了它,现在我的服务器监听到443。给我这个错误.. – 2014-11-04 15:55:07
你能提供更多信息吗?你是通过本地主机连接吗?如果没有,您是否允许在防火墙/安全软件中使用5008传入流量?它根本没有连接或者你有HTTP响应吗? – mscdex 2014-11-04 14:07:22
@mscdex:端口是开放的,我不通过本地主机连接(其他机器调用我的服务器..)。我添加了一个代码,对我来说工作正常,但是输入了ssl部分。谢谢。 – 2014-11-04 14:23:10
,并且在测试时在地址前添加“https://”,以便它是“https://example.org:5008”? – mscdex 2014-11-04 14:26:17