在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免费证书申请步骤
- 先注册一个二级域名
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
- 测试节点
区块链技术网。
- 发表于 2021-02-01 15:14
- 阅读 ( 700 )
- 学分 ( 7 )
- 分类:Polkadot
评论