【问题标题】:How to run NODE.JS (Socket.io) - CENTOS 7 with SSL domain?如何使用 SSL 域运行 NODE.JS (Socket.io) - CENTOS 7?
【发布时间】:2020-03-04 11:58:08
【问题描述】:

我的 socket.io 项目“xampp”适用于 localhost。

我有一个 Centos 7 (cPanel) 服务器。当我把文件扔进我的服务器时,我做了所有的事情。我写了命令“nodemon server.js”并且服务器正在运行。但是我在客户端遇到了与 SSL 相关的问题。

我的网站有 SSL。我正在使用 CloudFlare。由于这个原因,客户端无法与服务器通信。

当我禁用 SSL 时,我的项目正在运行。

Socket.io 如何与 SSL 一起工作?

云闪

Chrome 控制台日志:

客户代码:

var socket = io.connect('https://example.com:1347');

Server.js 代码

var server     = require('https').createServer(),
    io         = require('socket.io')(server),
    port       = 1337;

server.listen(port);

【问题讨论】:

    标签: node.js ssl websocket socket.io


    【解决方案1】:

    首先,如果您使用 CloudFlare。你应该知道 SSL 端口。

    Cloudflare 支持的 HTTPS 端口:

    443 2053 2083 2087 2096 8443

    使用服务器上的空端口。推荐:(8443)

    使用 PUTTY 连接到您的服务器。然后在您的服务器上找到域的目录。如果您使用的是 cpanel。沿着这条路走。

    cd /home/domainname/public_html
    

    您将来到网站的主目录。

    然后您需要为服务器创建 SSL 所需的文件。在下面输入各个命令。

    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
    

    客户代码:

    var socket = io.connect('https://example.com:8443', {secure: true});
    

    Server.js 代码

    var fs = require('fs');
    
    var https = require('https');
    var options = {
      key: fs.readFileSync('privatekey.pem'),
      cert: fs.readFileSync('certificate.pem')
    };
    var server = https.createServer(options);
    var io  = require('socket.io').listen(server);
    var port = 8443; // Enter any of the cloudflare ports.
    
    
    server.listen(port, function(){
      console.log('listening : ' + port);
    });
    

    【讨论】:

      猜你喜欢
      • 2012-09-19
      • 2018-02-16
      • 2013-05-27
      • 1970-01-01
      • 1970-01-01
      • 2016-06-20
      • 1970-01-01
      • 2017-11-22
      • 2012-08-14
      相关资源
      最近更新 更多