gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 14:23:31 26 4
gpt4 key购买 nike

我的 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com