4. 控制台的Web化
2009 年 8 月 22 日
在前一讲中,我们讲到如何安装控制台。
这本讲中,一方面,笔者对上一讲的安装方式做一个补充说明;
另一方面,讲一下如何将控制台通过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化的工具。
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端口,不然别人能直接不用密码访问了。