背景
在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免費證書申請步驟
- 先註冊一個二級域名
https://dcc.godaddy.com/manage/aresprotocol.com/dns
- 進入 https://freessl.cn/ 官網註冊一個賬號
- 下載 https://keymanager.org/ 對應系統版本的證書管理工具
- 安裝證書管理工具根據提示進行安裝
- 輸入二級域名
-
點擊創建
-
自動回打開keyManager
-
DNS 驗證
8.1 創建txt驗證
8.2 進行測試保存到keymanager
- 保存證書
- 下載Nginx證書包
得到一個 rococo-aresprotocol-com-nginx-0130164430.zip 壓縮包
- ubuntu 安裝Nginx
sudo apt-get install nginx # 安裝成功後 默認目錄 /etc/nginx/ 日誌查看目錄/var/log/nginx/
systemctl stop nginx #關閉Nginx
systemctl start nginx #啓動Nginx
- 上傳到服務器,配置我們的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;
}
- 重啓Nginx
sudo service nginx restart
- 測試節點