MDM监管锁系统租赁系统搭建教程

材料准备

  1. 使用公司资质申请苹果开发者账号

    https://support.tuya.com/zh/help/_detail/Kam3pskapsytn

    注意事项:

    1. 填写公司官网的时候 公司官网必须可以访问 且官网包含公司的 地址 联系方式 等信息 否则会被拒绝

在这里插入图片描述

  1. 申请苹果开发者的appleid 最好使用已经注册并使用一段时间的appleid 否则会风控,申请苹果开发者的手机和网络一定不要是已经申请过开发者的,否则也会风控

  2. 使用公司资质申请苹果商务管理,苹果商务管理申请需要一个企业邮箱

    https://support.apple.com/zh-cn/guide/apple-business-manager/axm402206497/web

环境准备

  1. 域名一个并解析到服务器

  2. 国内备案服务器一个 配置最低要求2h4g

  3. 域名ssl证书 推荐申请个有效期一年的 ssl证书到期不更换会导致无法控制设备

  4. mysql5.7数据库 并创建数据库 mdmadmin 导入sql文件夹下最新版本mdmadmin.sql

  5. redis3.2.12

  6. 服务器要求centos7需要安装Python2 和 openssl 以及openjdk java1.8 mysql和redis可以部署不同服务器

  7. nginx反向代理到34567端口 nginx配置参考 nginx文件

  8. 安装字体

    yum install epel-release -y && yum install fontconfig -y && fc-cache --force
    
  9. 安装nginx redis java1.8

     yum install -y nginx redis java-1.8.0-openjdk-src.x86_64
     systemctl start redis && systemctl enable redis
     systemctl start nginx && systemctl enable nginx
    
  10. 安装mysql

    查询是否有mysql冲突依赖

    rpm -qa|grep mariadb
    
    rpm -e  --nodeps 列出的包名
    

在这里插入图片描述

上传部署包内的mysql安装包到/opt

在这里插入图片描述

安装环境并启动与设置自启动

```
cd /opt
yum -y install net-tools perl libaio numactl
rpm -ivh mysql-community-common-5.7.44-1.el7.x86_64.rpm 
rpm -ivh mysql-community-libs-5.7.44-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.44-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.44-1.el7.x86_64.rpm
systemctl start mysqld
systemctl enable mysqld.service
```

查看临时密码

```
grep 'temporary password' /var/log/mysqld.log
```

在这里插入图片描述
进入mysql

```
mysql -u root -p 临时密码
```

在这里插入图片描述

修改mysql密码

```
ALTER USER 'root'@'localhost' IDENTIFIED BY '你得mysql密码';
```

更新权限并退出重启

```
use mysql;
update user set host="%" where user="root";
quit;
systemctl restart mysqld
```
  1. 配置nginx

    创建一个你的域名.conf文件 内容参考如下 域名改为你自己的域名 ssl证书位置也要对应修改

    server {
        listen         80;
        server_name    mdm.ppgjx.com; # 域名
        client_max_body_size 1024M;
        add_header Strict-Transport-Security max-age=15768000;
        return 301 https://$server_name$request_uri;
    }
    server {
        listen 443 ssl; # 老版本是ssl on;较新的为listen 443 ssl;
        server_name mdm.ppgjx.com; # 域名
        keepalive_timeout 10m;
        client_max_body_size 1024M;
        ssl_certificate      /etc/nginx/cert/mdm.ppgjx.com.pem; # 申请的证书,把证书和秘钥上传到nginx.conf的同级目录cert的目录下
        ssl_certificate_key  /etc/nginx/cert/mdm.ppgjx.com.key; # 秘钥
        ssl_session_timeout 24h;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        location /_AMapService/ {
                set $args "$args&jscode=db3c4ab14c402d6c9ce1e7d66d3c09f6"; #高德地图的jscode
                proxy_pass https://restapi.amap.com/;
        }
        location / {
                proxy_pass http://127.0.0.1:34567; # 反向代理到本机的10801端口,10801端口的那个服务器不需要任何关>于https的配置。
                proxy_redirect off;
                root /opt/mdm/data/web; # 替换为你实际的web根目录路径
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Forwarded-Port $server_port;
                add_header Content-Security-Policy upgrade-insecure-requests;
          }
    }
    

    配置文件传入/etc/nginx/conf.d下

    在这里插入图片描述

    /etc/nginx创建cert文件夹 将申请好的ssl证书改名传入 和上面创建的nginx配置文件ssl证书位置需要对应

    在这里插入图片描述

    重启nginx

    systemctl restart nginx
    
  2. 配置redis redis配置文件在 /etc/redis.conf

    找到requirepass foobared 解除注释 修改为你得redis密码

在这里插入图片描述

重启redis

```
systemctl restart nginx
```
  1. 修改application-dev.yml 文件 主要修改里面的mysql 和redis信息 其他酌情修改

    在这里插入图片描述

  2. 配置签名证书

    使用刚才的ssl证书,把私钥文件改名为 cert.key 证书文件改为 cert.pem 传入 部署包下面的 data/cert下

    在这里插入图片描述

    需要注意的是 pem文件里面 需要包含 ca证书 中级证书 和最终的颁发的证书 组成一个证书链 否则无法成功签名

    ca证书 中级证书 和最终的颁发的证书有先后顺序分别是 最上层 最终的颁发的证书 中层 中级证书 最低层 ca证书

    在这里插入图片描述

  3. 修改openssl.cnf文件

    openssl.cnf位置在部署包 下的 data/static 下 具体信息可根据自己的公司信息修改 最终会体现在 用户安装的描述文件中 不修改也可以使用

  4. 上传http.pac文件 到oss上

    http.pac文件在部署包的 data/static 下 上传后拿到下载链接保留待会使用

  5. 上传截图文件到 服务器/opt/mdm目录

    在这里插入图片描述

  6. 给予 xjar文件 执行权限

    chmod -R 777 /opt/mdm/xjar
    
  7. 创建数据库并导入最新版本sql文件 这里也可以通过工具导入

    在这里插入图片描述

  8. 创建systemctl服务器文件/usr/lib/systemd/system/mdm.service

    在这里插入图片描述

    文件写入此内容

    [Unit]
    After=syslog.target network.target remote-fs.target nss-lookup.target
    
    
    [Service]
    WorkingDirectory=/opt/mdm
    User=root
    Group=root
    Type=simple
    ExecStart=/opt/mdm/xjar /usr/bin/java -jar /opt/mdm/mdmadmin-0.0.1-SNAPSHOT.xjar --spring.config.location=/opt/mdm/application-dev.yml
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target
    

    刷新服务器

    systemctl daemon-reload
    

    在这里插入图片描述

    启动mdm服务

    systemctl start mdm
    

    查看mdm状态 绿色表示启动成功

    systemctl status mdm
    

在这里插入图片描述

启动成功后需要等待启动完毕可以查看启动日志

```
journalctl -u mdm -f
```

在这里插入图片描述

找到当前版本 表示部署成功 部署完毕后 进入域名  

默认

账号:super 

密码:123456

设置mdm自启动 设置自启动后如果服务器意外宕机也会自动恢复服务

```
systemctl enable mdm
```

维护与更新

  1. 启动命令

    systemctl start mdm
    

    查看是否启动成功

    systemctl status mdm
    

    在这里插入图片描述

    启动成功后需要等待启动完毕可以查看启动日志 一定要查看日志才能确定是否启动成功

    journalctl -u mdm -f
    

    在这里插入图片描述

  2. 关闭服务命令

    systemctl stop mdm
    
  3. 更新

    建议在服务器上创建一个版本 记录当前版本

    在这里插入图片描述

    每次给的更新部署包都会有一个版本更新文件比如我当前是1.0.1 版本需要更新到 1.0.3版本 就需要先执行1.0.2的更新 再去进行1.0.3的更新

    在这里插入图片描述

    更新步骤

    关闭服务 建议等待10秒

    systemctl stop mdm
    

    查看更新日志 修改数据库等需要更改的东西 然后将 xjar文件和mdmadmin-0.0.1-SNAPSHOT.xjar备份 将新版本的xjar和mdmadmin-0.0.1-SNAPSHOT.xjar传入服务器执行启动命令

    systemctl start mdm
    

    查看是否启动成功

    systemctl status mdm
    
    journalctl -u mdm -f
    

第一次部署配置

  1. 修改系统设置

    使用默认管理员账号登录后台进入 管理设置->系统设置 以下是功能列表说明

    • api注册接口秘钥

      用于自动化注册接口 必须修改

    • 设备访问限制修改后自动关闭时间/ 秒 为0则不使用

      特定场景:假设某个客户需要临时开启某个手机权限,但是时间一久可能忘了关闭会导致设备有解绑的风险,如果设置不为0,则到时间以后会自动关闭权限

      在这里插入图片描述

    • 设备状态检测时间 /秒

      为了感知用户设备是否在线,服务器每隔段时间都会下发命令到手机测试手机是否会在线,此功能是下发时间,建议默认
      在这里插入图片描述

    • 异步任务超过这个时间没有报到 则重试推送 /秒

      下发命令如果没有设备没有按指定时间内执行 则重新下发 建议默认

    • 非等待命令过期时间 /秒

      默认即可

    • 设备等待超时时间/秒

      非异步命令可以感知命令是否执行成功,如果等待时间内设备没有执行命令则取消这个命令 建议默认

    • 禁止退出远程管理 1是 0否

      开启后设备无法通过 设置->通用->VPN与设备管理->移动设备管理->退出远程管理 来抹掉设备 建议默认

      开启此功能可能会导致用户设备无法使用银行APP,如果判断是正常用户可以给予开启

    • 域名

      必须修改为你当前域名

    • httpPac代理文件url

      这里需要修改为之前上传oss的http.pac文件链接 请务必保证pac文件可以访问 否则用户设备可能会出现无法上网

    • 登录验证码 1开启 0关闭

      登录验证码 根据自己需求开启

      注册邮箱配置

      如果不配置 则注册无法使用 邮箱申请专用密码可参考

      https://www.ujcms.com/documentation/351.html

    • mailConnectionTimeout

      默认即可

    • mailFrom

      发邮件的邮箱

    • mailHost

      邮件服务器列如 qq邮箱为 smtp.qq.com

    • mailPass

      专用密码

    • mailPort

      邮箱服务器端口

    • mailSocketFactoryClass

      默认

    • mailSocketFactoryFallback

      默认

    • mailSocketFactoryPort

      邮箱服务器端口

    • mailSslEnable

      默认

    • mailStarttlsEnable

      默认

    • mailTimeout

      默认

    • mailUser

      发邮件的邮箱

    • 任务失败重试时间 /秒

      设备命令并不是一定会被手机执行成功的,列如手机正在更新,此参数在命令执行失败后会重新尝试下发命令

    修改后需要进行保存才能生效 一定需要检查输入前后有没有空格

服务器维护

  • 服务器防火墙或者安全组只保留80 443端口 ssh端口设置ip白名单
  • ssl证书到期需要提前更新 否则会无法控制设备
  • 如果服务器厂商支持 建议服务器每天打个快照保留其他 保证数据安全 因为数据库不是用的云数据库打快照很有必要

接口文档

采用的是swgger

https://你的域名/doc.html

接口文档账号密码在application-dev.yml文件里 建议修改

前端编译

前端采用的是vue-element

源代码再部署包里的mdm_vue.zip

node版本v16.20.2

使用idea 找到package.json 箭头执行即可

在这里插入图片描述

执行完毕后 在disk文件夹下生成编译后的文件 传入 /opt/mdm/data/web/ 覆盖即可

在这里插入图片描述

服务器架构

后端采用 spring boot + mybatis + mysql + redis

前端 vue + element ui

高德地图申请

由于设备定位需要用到地图功能 需要申请高德地图

  1. 进入高德地图官网 https://lbs.amap.com/ 注册一个账户并登录

  2. 进入后台 创建应用

    https://console.amap.com/dev/key/app
    在这里插入图片描述

    1. 创建应用完毕后添加key

    在这里插入图片描述

    1. 添加key选择web端

    添加完毕以后会拿到key和安全秘钥

    1. 安全秘钥需要传入nginx

      在这里插入图片描述

    2. key需要修改前端 编译后更新服务器即可

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值