2013-05-31 206 views
2

我有一臺運行SSL的Apache服務器。現在我做了一個使用node.js和socket.io傳輸數據的小聊天。在沒有安全連接的情況下使用端口8080正常工作,但是當我在SSL安全域上嘗試時,它不起作用。我不明白整個設置應該如何工作,因爲SSL只能通過端口443工作.Apache已經在端口443上列出。在socket.io應偵聽哪個端口上?node.js,socket.io和SSL

+1

的可能的複製解決方案http://stackoverflow.com/questions/6599470/node-js-socket-io -with-ssl – Fallexe

+0

@Flexlex不是真的。他在沒有Apache的情況下使用node.js。在我的情況下,Apache已經在使用端口443 – Aley

+0

我從來沒有嘗試在相同的端口上運行Apache和套接字,但是這裏有類似的w/o ssl http://stackoverflow.com/questions/11172351/how-to-把-的NodeJS-和Apache的內式相同的端口-80 – Fallexe

回答

3

我不得不設置SSL證書就像

var fs = require('fs'); 

var options = { 
    key: fs.readFileSync('/etc/ssl/ebscerts/wildcard.my_example.com.no_pass.key'), 
    cert: fs.readFileSync('/etc/ssl/ebscerts/wildcard.my_example.com.crt'), 
    ca: fs.readFileSync('/etc/ssl/ebscerts/bundle.crt') 
}; 

var app = require('https').createServer(options), 
    io = require('socket.io').listen(app); 

app.listen(8080); 

我發現github