2014-11-04 107 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