Использование NGINX Node.js и Socket.IO с SSL ERR_SSL_PROTOCOL_ERROR - PullRequest
0 голосов
/ 17 апреля 2020

Мой сайт успешно использует сертификат SSL от LetsEncrypt. Однако я не могу подключиться к своему Socket.IO, работающему на сервере узлов, я получаю ERR_SSL_PROTOCOL_ERROR

На своем веб-интерфейсе я пытаюсь подключиться к Socket.IO, используя: private socket = socketIOClient( appname.app: 8080 );

Мой сервер узлов выглядит следующим образом:

const app = require('express')();
const helmet = require("helmet");

app.use(helmet());

app.listen(8000);

const options = {
  cert: "/etc/letsencrypt/live/appname.app/fullchain.pem",
  key: "/etc/letsencrypt/live/appname.app/privkey.pem"
};

const http = require('http').createServer(options, app);
const io = require('socket.io')(http);

const portNumber = 8080;

http.listen(portNumber, function(){
  console.log('listening on *:' + portNumber);
});

Они нормально подключаются при локальной работе.

Я подозреваю, что мне нужно изменить сервер NGINX:

server {
    root /var/www/appname.app/html;

    index index.html index.htm index.nginx-debian.html;

    server_name www.appname.app appname.app;

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ /index.html;
    }

    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/appname.app/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/appname.app/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}


server {
    if ($host = www.appname.app) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    if ($host = appname.app) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80 default_server;
    listen [::]:80 default_server;

    server_name www.appname.app appname.app;
    return 404; # managed by Certbot
}

Что я пробовал:

Я попытался изменить порт на 8080 в конфигурации nginx. Я пытался ссылаться на сервер с IP-адресом. Я изменил порт на 80 на моем сервере узлов. Я безуспешно следовал этому уроку: https://www.sitepoint.com/how-to-use-ssltls-with-node-js/.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...