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

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

背景

在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

点赞 1
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Ares Protocol 技术社区
Ares Protocol 技术社区
波卡生态项目,专注substrate技术