Мой сайт успешно использует сертификат 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/.