不用人人都搭建一遍环境了

在前一讲中,我们讲到如何安装控制台。

这本讲中,一方面,笔者对上一讲的安装方式做一个补充说明;

另一方面,讲一下如何将控制台通过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文件夹生成成功了:

4. 控制台的Web化

我们调整下文件名和文件位置:

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端口,我们就可以愉快的在页面上看到控制台啦~

4. 控制台的Web化

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端口,不然别人能直接不用密码访问了。


4. 控制台的Web化

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注