在Rococo上節點搭建WebSocket服務如何配置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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章