如何使用 nginx 和 geth 以太坊客户端设置安全的 websocket

问题描述

我想访问使用具有安全 websockets 的 geth 客户端运行以太坊节点的服务器 Sustainabilitychain.ch::

wscat -c wss://rpc.sustainabilitychain.ch:8546/ws/ 但我收到一个错误错误:写入 EPROTO 140281710122496:错误:1408F10B:SSL 例程:ssl3_get_record:错误的版本号:../ssl/记录/ssl3_record.c:331:"

我已经启动了一个在端口 8546 上运行 websockets 的 geth 客户端我可以毫无问题地访问它 wscat -c ws://rpc.sustainabilitychain.ch:8546 这在我在 ubuntu 21 和 Nginx 上运行的服务器上运行良好 - v 1.18

我已经在 /etc/Nginx/sites-enabled/reverse-proxy.conf 下方使用此配置设置了 Nginx 反向代理


upstream channels-backend {
    server 127.0.0.1:8546;
}

server {

        server_name sustainabilitychain.ch,rpc.sustainabilitychain.ch;

        access_log /var/log/Nginx/reverse-access.log;
        error_log /var/log/Nginx/reverse-error.log;

        location / {
                    proxy_pass http://127.0.0.1:8545;
  }
        location /ws/ {

                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $host;
                    proxy_pass http://websocket;
                    proxy_http_version 1.1;
                    proxy_set_header Upgrade $http_upgrade;
                    proxy_set_header Connection "upgrade";

  }



    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/rpc.sustainabilitychain.ch/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/rpc.sustainabilitychain.ch/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
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
}
    upstream websocket {
        ip_hash;
        server 127.0.0.1:8546;
    }



server {
    if ($host = rpc.sustainabilitychain.ch) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


        listen 80;
        listen [::]:80;

        server_name sustainabilitychain.ch,rpc.sustainabilitychain.ch;
    return 404; # managed by Certbot

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)