node.js - 在 Socket.IO Node.js 上安装 SSL

标签 node.js ssl socket.io

我购买了 GoDaddy 标准 SSL 证书并将其安装在 http://mysite.com 。现在https://mysite.com效果很好。

现在,我想安装在http://mysite.com:3000运行的socket.io的证书。

我尝试通过以下方式连接 SSL:

var socket = io.connect('https://www.mysite.com:3000', {secure:true}); 

但它不起作用。这是server.js

var io = require('socket.io'), 
    connect = require('connect'), 
    mysql = require('mysql');

var app = connect().use(connect.static('../public_html/node/'));
app.listen(3000);
var server = io.listen(app);
server.sockets.on('connection', function(socket) { 
     socket.emit('getid', {message: "A New user is online"});
}

和客户端index.html

<script type = "text/javascript" src = "http://www.mysite.com:3000/socket.io/socket.io.js"></script>

<script type = "text/javascript">
var socket = io.connect('http://www.mysite.com:3000'); 
</script>

有什么建议吗?

最佳答案

您的客户端正在连接到 http,请尝试让您的客户端 index.html 连接到 https

此外,您需要加载证书。

const crypto = require('crypto'),
  fs = require("fs"),
  http = require("http");

var privateKey = fs.readFileSync('privatekey.pem').toString();
var certificate = fs.readFileSync('certificate.pem').toString();

var credentials = crypto.createCredentials({key: privateKey, cert: certificate});

var handler = function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
};

var server = http.createServer();
server.setSecure(credentials);
server.addListener("request", handler);
server.listen(8000);

创建自签名 .pem 文件。 (要获得奖励积分,请让信誉良好的公司签署您的 .csr。)

openssl genrsa -out privatekey.pem 2048 
openssl req -new -key privatekey.pem -out certrequest.csr 
openssl x509 -req -in certrequest.csr -signkey privatekey.pem -out certificate.pem

关于node.js - 在 Socket.IO Node.js 上安装 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15312229/

相关文章:

node.js - NodeJS - Redis 连接事件

javascript - object` ("[object Response]") 不能序列化为 JSON?

javascript - 每个 .js 文件的 Node glob 模式,除了 .spec.js

node.js - 在 node.js 中使用 socket.io 设置服务器-服务器 SSL 通信

javax.net.ssl.SSLHandshakeException : Remote host closed connection during handshake

javascript - MongoDB 嵌套查询仅返回最后出现的结果

node.js - Strongloop Loopback中如何定义一个模型有多个相同的模型?

node.js - socket.io 1.0.0^ : Using the default room vs a custom room for user specific communications

javascript - 未捕获的类型错误 : Cannot read property 'BlobBuilder' of undefined

php - file_get_contents 忽略 verify_peer=>false?