Я много искал об этом, но как-то не смог понять.
Вот краткий обзор моего случая:
У меня есть клиентский сервер, который работает на Apache + Cpanel с сертификатом letsencrypt ssl. Когда пользователь нажимает на ссылку, он пытается подключиться wss: // nodeserverip: порт
На nodejs стороне сервера, я использую nginx для обратного прокси-сервера, но я не смог его настроить. Оба сервера работают на Centos. Схема, которую я хочу, чтобы это было:
Пользователь нажимает на ссылку -> wss: // NodejsServerip: port1 -> (соединение с NodejsServer) proxy_pass http://NodejsServerip : port2 -> ответить клиенту
Я использую s эльфийский сертификат для NodejsServer. В этом случае либо я получаю ошибку ERR_CERT_AUTHORITY_INVALID, либо ERR_SSL_PROTOCOL_ERROR в журнале консоли в соответствии с моей конфигурацией.
Вот мой nginx файл default.conf:
server {
listen 8080 ssl;
listen [::]:8080 ssl ipv6only=on;
server_name client.website.address;
#root /usr/share/nginx/html;
#ssl_verify_client on;
#ssl_verify_client off;
#ssl_client_certificate /etc/nginx/certs/privkey.pem;
ssl_certificate /etc/nginx/certs/client.crt;
ssl_certificate_key /etc/nginx/certs/client.key;
#ssl_session_cache shared:le_nginx_SSL:1m;
#ssl_session_timeout 1d;
#ssl_session_tickets off;
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3 SSLv2 SSLv3;
#ssl_prefer_server_ciphers on;
#ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
#ssl_ecdh_curve secp384r1;
#ssl_stapling on;
#ssl_stapling_verify on;
#add_header Strict-Transport-Security "max-age=15768000; includeSubdomains; preload;";
#add_header Content-Security-Policy "default-src 'none'; frame-ancestors 'none'; script-src 'self'; img-src 'self'; style-src 'self'; base-uri 'self'; form-action 'self';";
#add_header Referrer-Policy "no-referrer, strict-origin-when-cross-origin";
#add_header X-Frame-Options SAMEORIGIN;
#add_header X-Content-Type-Options nosniff;
#add_header X-XSS-Protection "1; mode=block";
# Load configuration files for the default server block.
#include /etc/nginx/default.d/*.conf;
location / {
#proxy_ssl_verify off;
#proxy_ssl_verify on;
#proxy_ssl_certificate /etc/nginx/certs/client.crt;
#proxy_ssl_certificate_key /etc/nginx/certs/client.key;
#proxy_ssl_trusted_certificate /etc/nginx/certs/client.crt;
proxy_buffering off;
proxy_redirect off;
proxy_pass http://127.0.0.1:2020;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# WebSocket support (nginx 1.4)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}