使用socket.io,Cloudflare SSL握手失败

时间:2017-11-02 23:58:35

标签: node.js ssl websocket socket.io cloudflare

这是我正在使用的代码:

"use strict"
var express = require('express');
var https = require('https');
var app = express();
var bodyParser = require('body-parser');
app.enable('trust proxy');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
    extended: true
}));
var fs = require('fs');
var options = {
    cert: fs.readFileSync('ssl_certs/cert.pem'),
    key: fs.readFileSync('ssl_certs/privkey.pem'),
    requestCert: true,
};
var server = https.createServer(options, app);
var io = require('socket.io')(server);
var port = 2083
server.listen(port, "0.0.0.0", function() {
    console.log('Listening on port *:' + port + '.');
});

io.on('connection', function(socket) {
    console.log('connected!')
});

console.log("Running node " + process.version);

如果我使用Node.js版本6.11.2,此代码可以正常工作,但是在Node.js版本8.9.0上,它在尝试建立连接时返回525错误。

如果重要的话,我的SSL设置在Cloudflare上设置为Full(严格)。

我不知道SSL的Node v8是否有变化?

任何帮助都将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:1)

已知在节点8.5.0之后发生SSL问题。最好的解决方案是降级到8.5.0或更低,直到所有问题在几天内从节点端修复。

资料来源:Issue

更多更新:Updates