2020-12-13 局域网中部署带https的thingsbo

2020-12-16  本文已影响0人  冰火混合物

基本步骤

首先采用mkcert生成证书
然后部署timescaledb
最后在局域网中部署

文件夹设置

sudo mkdir -pv /data/thingsboard/mytb-data
sudo mkdir -pv /data/thingsboard/mytb-logs
sudo mkdir -pv /data/thingsboard/keys
cd /data/thingsboard
sudo chown -R 799:799 mytb-data
sudo chown -R  799:799 mytb-logs
sudo chown -R 799:799 keys

mkcert生成证书

参考:https://github.com/FiloSottile/mkcert

cd $HOME/Downloads
sudo apt install libnss3-tools #必要依赖
wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.3/mkcert-v1.4.3-linux-amd64 -O mkcert
chmod a+x mkcert
sudo mv mkcert /usr/local/bin/
mkcert -CAROOT # 显示当前用户的CAROOT安装目录
mkcert -install # 安装CA证书
# 下载CA证书到客户端浏览器
mkcert -p12-file server.p12 -pkcs12  localhost 127.0.0.1 ::1 10.168.2.155  #生成java程序所需的p12文件
sudo cp server.p12 /data/thingsboard/keys
sudo chown -R 799:799 /data/thingsboard/keys

pull docker镜像

docker pull thingsboard/tb #不需要postgres版本

运行thingsboard

运行thingsbaord需要几个设置

  1. timescaledb数据库
    建议通过--link制定host的名字,必须知道用户名、密码和端口,并进行设置
  2. 通过mkcert生成的证书,这样才可以以https方式访问
  3. 映射好目录,并确认799的owner和group权限;
# 去掉\后的注释才能正常运行!
sudo docker run -d --name tb \
--link timescaledb:timescaledb \ # 已经运行的timescaledb服务器
-p 8080:9090 \ # 端口映射
-p 1883:1883 \
-p 5683:5683/udp \
-e SSL_ENABLED=TRUE \ #启用https
-e SSL_KEY_STORE=/keys/server.p12 \ # key的位置,默认是classpath中,实际上classpath中是没有keystore文件的
-e SSL_KEY_STORE_PASSWORD=changeit \ # mkcert生成的p12文件的默认密码,可以用keytool更改
-e SSL_KEY_STORE_TYPE=PKCS12 \ # p12文件格式
-e SSL_KEY_ALIAS=1 \ # mkcert生成的p12文件中的别名,tb中默认是tomcat,会提示找不到
-e TB_QUEUE_TYPE=in-memory \ # 默认
-e DATABASE_ENTITIES_TYPE=sql \ # sql类型
-e DATABASE_TS_TYPE=timescale \ # 使用timescaledb 必要的设置
-e DATABASE_TS_LATEST_TYPE=timescale \ # 使用timescaledb 必要的设置
-e SPRING_JPA_DATABASE_PLATFORM=org.hibernate.dialect.PostgreSQLDialect \
-e SPRING_DRIVER_CLASS_NAME=org.postgresql.Driver \
-e SPRING_DATASOURCE_URL=jdbc:postgresql://timescaledb:5432/thingsboard \
-e SPRING_DATASOURCE_USERNAME=postgres \
-e SPRING_DATASOURCE_PASSWORD=<密码!> \
-e SPRING_DATASOURCE_MAXIMUM_POOL_SIZE=5 \
-e SQL_TIMESCALE_CHUNK_TIME_INTERVAL=604800000 \ # 1周的毫秒数
-v /data/thingsboard/mytb-data:/data \
-v /data/thingsboard/mytb-logs:/var/log/thingsboard \
-v /data/thingsboard/keys:/keys \
thingsboard/tb 

sudo docker logs -f tb # 查看启动过程

导入CA证书查看

mkcert -CAROOT输出的目录中的的rootCA.pem文件加入到浏览器的信任根证书中,重启浏览器,访问网页即可。

上一篇下一篇

猜你喜欢

热点阅读