node.js - 如何使用 SSL 域运行 NODE.JS (Socket.io) - CENTOS 7?

标签 node.js ssl websocket socket.io

我的 socket.io 项目“xampp”适用于本地主机。

我有一个 Centos 7 (cPanel) 服务器。当我将文件放入我的服务器时,我做了一切。我写了命令“nodemon server.js”,服务器正在运行。但是我的客户端遇到了与 SSL 相关的问题。

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

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

Socket.io 如何与 SSL 配合使用?

云焰: enter image description here

Chrome 控制台日志: enter image description here

客户端代码:

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);

最佳答案

首先,如果您使用 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);
});

关于node.js - 如何使用 SSL 域运行 NODE.JS (Socket.io) - CENTOS 7?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58756604/

相关文章:

java - 如何为 Java HTTPS *服务器*配置 SSL 密码套件?

ssl - OpenShift 免费帐户和自定义 ssl 证书?

node.js - NodeJS 中用于 API 的 stub DynamoDB

javascript - 如何在 azure 持久函数中“即发即忘”

ssl - 如何为 apache karaf 添加 SSL 连接器?

javascript - socket.io 与 socket.io-redis : get all socket object in a room

python - 您如何使用 tornado.testing 创建 WebSocket 单元测试?

node.js - mongodb不保存所有数据

javascript - 保存 api token 的位置?

go - websocket.Upgrader 到底是什么?