node.js、socket.io 和 SSL
Posted
技术标签:
【中文标题】node.js、socket.io 和 SSL【英文标题】:node.js, socket.io and SSL 【发布时间】:2013-05-27 21:01:09 【问题描述】:我有一个运行启用 SSL 的 Apache 服务器。现在我做了一个小聊天,它使用 node.js 和 socket.io 来传输数据。在非安全连接上使用端口 8080 工作得很好,但是当我在 SSL 安全域上尝试它时它不起作用。我不明白整个设置应该如何工作,因为 SSL 只通过端口 443 工作。Apache 已经在端口 443 上列出。socket.io 应该在哪个端口上监听?
【问题讨论】:
***.com/questions/6599470/node-js-socket-io-with-ssl的可能重复 @Fallexe 不是真的。他正在使用没有 Apache 的 node.js。就我而言,Apache 已经在使用端口 443 我从来没有尝试在同一个端口上运行 Apache 和 socket,但这里有类似的 w/o ssl ***.com/questions/11172351/… 【参考方案1】:我必须像这样设置 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找到了解决方案
【讨论】:
以上是关于node.js、socket.io 和 SSL的主要内容,如果未能解决你的问题,请参考以下文章
Phaser.js 中的 Node.js 和 Socket.io 未连接 socket.io/?EIO=3&transport=polling