美文网首页
2020-12-13 局域网中部署带https的thingsbo

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

作者: 冰火混合物 | 来源:发表于2020-12-16 02:41 被阅读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文件加入到浏览器的信任根证书中,重启浏览器,访问网页即可。

    相关文章

      网友评论

          本文标题:2020-12-13 局域网中部署带https的thingsbo

          本文链接:https://www.haomeiwen.com/subject/vukpgktx.html