在Rococo上节点搭建WebSocket服务如何配置SSL

眉间皱痕 提交于 2021-02-03 11:58:07

背景

在substrate的开发过程中,我们本地可以启动节点然后通过polkadot.js.org来查看节点的运行情况。在localhost的情况下,不需要关心SSL的证书。

但是在项目的开发中,节点一般需要运行在服务里面,而polkadot.js.org目前只接受WebSocket连接,这是因为WebSocket是长链接,可以订阅区块数据,而RPC很难做到这一点。

那我们需要搭建一个WebSocket才能让polkadot.js.org访问节点。
WebSocket需要设置一个安全的代理连接才可以工作起来,官方给了一个链接
https://wiki.polkadot.network/docs/en/maintain-wss#set-up-nginx-server
来让我们参考,下面我们将介绍下通过godaddy生成免费证书。


godaddy免费证书申请步骤

  1. 先注册一个二级域名

https://dcc.godaddy.com/manage/aresprotocol.com/dns

image20210130162838128.png

  1. 进入 https://freessl.cn/ 官网注册一个账号

image20210130220053163.png

  1. 下载 https://keymanager.org/ 对应系统版本的证书管理工具

image20210130220148582.png

  1. 安装证书管理工具根据提示进行安装

image20210130220020612.png

  1. 输入二级域名

image20210130163645749.png

  1. 点击创建

  2. 自动回打开keyManager

  3. DNS 验证

image20210130163943469.png

8.1 创建txt验证

image20210130163852553.png

8.2 进行测试保存到keymanager

image20210130164121373.png

  1. 保存证书

image20210130164219021.png

  1. 下载Nginx证书包

image20210130164318339.png
image20210130164349684.png

得到一个 rococo-aresprotocol-com-nginx-0130164430.zip 压缩包

  1. ubuntu 安装Nginx
sudo apt-get install nginx # 安装成功后 默认目录 /etc/nginx/   日志查看目录/var/log/nginx/

systemctl stop nginx #关闭Nginx 
systemctl start nginx #启动Nginx

image20210130215222231.png

  1. 上传到服务器,配置我们的Nginx地址
root@node2:/home/nginx# ls
rococo-aresprotocol-com-nginx-0130164430.zip
root@node2:/home/nginx# ls
rococo.aresprotocol.com_chain.crt  rococo.aresprotocol.com_key.key  rococo-aresprotocol-com-nginx-0130164430.zip

修改我们的nginx.conf

vi nginx.conf
server {

        server_name rococo.aresprotocol.com;

        root /var/www/html;
        index index.html;

        location / {
          try_files $uri $uri/ =404;

          proxy_pass http://localhost:9944;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header Host $host;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "upgrade";
        }

      listen [::]:443 ssl ipv6only=on;
      listen 443 ssl;
      ssl_certificate /home/nginx/rococo.aresprotocol.com_chain.crt;
      ssl_certificate_key /home/nginx/rococo.aresprotocol.com_key.key;

      ssl_session_cache shared:cache_nginx_SSL:1m;
      ssl_session_timeout 1440m;

      ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
      ssl_prefer_server_ciphers on;
}
  1. 重启Nginx
sudo service nginx restart
  1. 测试节点

image.gif

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!