在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](https://img.learnblockchain.cn/attachments/2021/02/WOSoW1yH6017a919bed13.png) 2. 进入 https://freessl.cn/ 官网注册一个账号 ![image20210130220053163.png](https://img.learnblockchain.cn/attachments/2021/02/1kSAerPK6017a8aa9bfde.png) 3. 下载 https://keymanager.org/ 对应系统版本的证书管理工具 ![image20210130220148582.png](https://img.learnblockchain.cn/attachments/2021/02/9vgCc53K6017a891340ce.png) 4. 安装证书管理工具根据提示进行安装 ![image20210130220020612.png](https://img.learnblockchain.cn/attachments/2021/02/SczQA6X56017a871cdfd3.png) 5. 输入二级域名 ![image20210130163645749.png](https://img.learnblockchain.cn/attachments/2021/02/yBzNUnEl6017a85d90181.png) 6. 点击创建 7. 自动回打开keyManager 8. DNS 验证 ![image20210130163943469.png](https://img.learnblockchain.cn/attachments/2021/02/HfgcHzHD6017a82ed237b.png) 8.1 创建txt验证 ![image20210130163852553.png](https://img.learnblockchain.cn/attachments/2021/02/1vImy6G06017a8138d97e.png) 8.2 进行测试保存到keymanager ![image20210130164121373.png](https://img.learnblockchain.cn/attachments/2021/02/KcMBKfsa6017a7abc9676.png) 9. 保存证书 ![image20210130164219021.png](https://img.learnblockchain.cn/attachments/2021/02/rOTa5oV66017a7f87e981.png) 10. 下载Nginx证书包 ![image20210130164318339.png](https://img.learnblockchain.cn/attachments/2021/02/wwM18Qoe6017a72b50b61.png) ![image20210130164349684.png](https://img.learnblockchain.cn/attachments/2021/02/UwThRqX66017a73abd88f.png) 得到一个 rococo-aresprotocol-com-nginx-0130164430.zip 压缩包 11. ubuntu 安装Nginx ``` sudo apt-get install nginx # 安装成功后 默认目录 /etc/nginx/ 日志查看目录/var/log/nginx/ systemctl stop nginx #关闭Nginx systemctl start nginx #启动Nginx ``` ![image20210130215222231.png](https://img.learnblockchain.cn/attachments/2021/02/wM7o0JE36017a6eeee062.png) 12. 上传到服务器,配置我们的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; } ``` 13. 重启Nginx ``` sudo service nginx restart ``` 14. 测试节点 ![image.gif](https://img.learnblockchain.cn/attachments/2021/02/VX1cId8Q60179fff983ae.gif)

背景

在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

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

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

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

  1. 输入二级域名

  1. 点击创建

  2. 自动回打开keyManager

  3. DNS 验证

8.1 创建txt验证

8.2 进行测试保存到keymanager

  1. 保存证书

  1. 下载Nginx证书包

得到一个 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

  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. 测试节点

区块链技术网。

  • 发表于 2021-02-01 15:14
  • 阅读 ( 700 )
  • 学分 ( 7 )
  • 分类:Polkadot

评论