4. 控制台的Web化
不用人人都搭建一遍环境了
在[前一讲](https://learnblockchain.cn/article/1959)中,我们讲到如何安装控制台。 这本讲中,一方面,笔者对上一讲的安装方式做一个补充说明; 另一方面,讲一下如何将控制台通过ttyd Web化,以供一个小组内的所有人共用。 ## 1 补充说明:如何通过机构私钥生成SDK文件 FISCO BCOS中的各层级证书关系如下: ``` 根证书 签发 签发 CA.KEY ------> AGENCY.CRT -------> NODE.CRT CA.CRT AGENCY.KEY -------> NODE.KEY | 签发 +------------> SDK.CRT +------------> SDK.KEY ``` 我们可以看到,SDK和NODE只是在名字上存在差异,因此,现在假设我们有Agency目录了: ```` agency ├── agency.crt ├── agency.key ├── agency.srl ├── ca.crt └── cert.cnf ```` 我们可以通过如下脚本来生成`SDK`文件夹: ``` ./gen_node_cert.sh -c ~/agency -o sdk ``` 输出如下,则说明sdk文件夹生成成功了: ![image-20210202172625885](https://img.learnblockchain.cn/2021/02/03_/707187186.jpg) 我们调整下文件名和文件位置: ``` cd sdk mv conf/ca.crt ./ mv conf/node.key sdk.key mv conf/node.crt sdk.crt rm -rf conf ``` 我们就得到`SDK`文件夹啦。 ## 2 如何把控制台Web化 ### 2.1 安装 screen 首先安装`screen`,一个方便的窗口管理工具,可以让你执行的命令在关闭`ssh`连接后依然运行。 ``` apt install screen ``` 通过`screen`创建新窗口: ``` screen -S ttyd ``` ### 2.2 安装 ttyd ttyd是一个用C写的,小巧便捷的让命令行Web化的工具。 项目地址: > [https://github.com/tsl0922/ttyd](https://github.com/tsl0922/ttyd) Ubuntu下的 ttyd 安装方法: ``` sudo apt-get install build-essential cmake git libjson-c-dev libwebsockets-dev git clone https://github.com/tsl0922/ttyd.git # 或走码云:git clone https://gitee.com/zhangzq/ttyd.git cd ttyd && mkdir build && cd build cmake .. make && sudo make install ``` ### 2.3 Console Web化 执行下面命令: ``` ttyd -p 8080 bash /root/fisco/console/start.sh ``` 然后访问8080端口,我们就可以愉快的在页面上看到控制台啦~ ![image-20210202174435323](https://img.learnblockchain.cn/2021/02/03_/90201260.jpg) ### 2.4 通过NginX添加权限控制 还差最后一步。 因为控制台有区块链的访问权限,所以我们仅希望掌握密码的人才能访问。 一个最简单的实现方式是在NginX里加密码。 1. 安装`apache2-utils`密码工具 ``` sudo apt-get install apache2-utils ``` 2. 添加用户名密码 ``` htpasswd -c /etc/nginx/.htpasswd [username-u-want] ``` 3. 在NginX目录下添加一个conf: ``` cd /etc/nginx/sites-available vim console.conf ``` 填入如下内容: ``` server { listen 80; server_name default.com; location / { root /var/www/html; index index.htm index.html; auth_basic "Restricted"; auth_basic_user_file /etc/nginx/.htpasswd; proxy_pass http://127.0.0.1:8080; } } ``` 这样80端口就加上权限控制并转发到8080了。 4. 关闭8080端口 最后,别忘了关闭8080端口,不然别人能直接不用密码访问了。 --- ![slogan.jpeg](https://img.learnblockchain.cn/attachments/2020/05/2MLYUj8y5ec34769dcf2f.jpeg)
在前一讲中,我们讲到如何安装控制台。
这本讲中,一方面,笔者对上一讲的安装方式做一个补充说明;
另一方面,讲一下如何将控制台通过ttyd Web化,以供一个小组内的所有人共用。
1 补充说明:如何通过机构私钥生成SDK文件
FISCO BCOS中的各层级证书关系如下:
根证书 签发 签发
CA.KEY ------> AGENCY.CRT -------> NODE.CRT
CA.CRT AGENCY.KEY -------> NODE.KEY
| 签发
+------------> SDK.CRT
+------------> SDK.KEY
我们可以看到,SDK和NODE只是在名字上存在差异,因此,现在假设我们有Agency目录了:
agency
├── agency.crt
├── agency.key
├── agency.srl
├── ca.crt
└── cert.cnf
我们可以通过如下脚本来生成SDK
文件夹:
./gen_node_cert.sh -c ~/agency -o sdk
输出如下,则说明sdk文件夹生成成功了:
我们调整下文件名和文件位置:
cd sdk
mv conf/ca.crt ./
mv conf/node.key sdk.key
mv conf/node.crt sdk.crt
rm -rf conf
我们就得到SDK
文件夹啦。
2 如何把控制台Web化
2.1 安装 screen
首先安装screen
,一个方便的窗口管理工具,可以让你执行的命令在关闭ssh
连接后依然运行。
apt install screen
通过screen
创建新窗口:
screen -S ttyd
2.2 安装 ttyd
ttyd是一个用C写的,小巧便捷的让命令行Web化的工具。
项目地址:
https://github.com/tsl0922/ttyd
Ubuntu下的 ttyd 安装方法:
sudo apt-get install build-essential cmake git libjson-c-dev libwebsockets-dev
git clone https://github.com/tsl0922/ttyd.git
# 或走码云:git clone https://gitee.com/zhangzq/ttyd.git
cd ttyd && mkdir build && cd build
cmake ..
make && sudo make install
2.3 Console Web化
执行下面命令:
ttyd -p 8080 bash /root/fisco/console/start.sh
然后访问8080端口,我们就可以愉快的在页面上看到控制台啦~
2.4 通过NginX添加权限控制
还差最后一步。
因为控制台有区块链的访问权限,所以我们仅希望掌握密码的人才能访问。
一个最简单的实现方式是在NginX里加密码。
-
安装
apache2-utils
密码工具sudo apt-get install apache2-utils
-
添加用户名密码
htpasswd -c /etc/nginx/.htpasswd [username-u-want]
-
在NginX目录下添加一个conf:
cd /etc/nginx/sites-available vim console.conf
填入如下内容:
server { listen 80; server_name default.com; location / { root /var/www/html; index index.htm index.html; auth_basic "Restricted"; auth_basic_user_file /etc/nginx/.htpasswd; proxy_pass http://127.0.0.1:8080; } }
这样80端口就加上权限控制并转发到8080了。
-
关闭8080端口
最后,别忘了关闭8080端口,不然别人能直接不用密码访问了。
区块链技术网。
- 发表于 2021-02-02 18:01
- 阅读 ( 1260 )
- 学分 ( 25 )
- 分类:FISCO BCOS
- 专栏:狗哥区块链精品内容集
评论