# 1.客户获取服务器信息 需要提前安装好docker ``` //启动docker容器获取服务器环境信息,复制所有信息发给对应的同事 # docker run --rm --name java -v /sbin/dmidecode:/sbin/dmidecode -v /dev/mem:/dev/mem --privileged docker.platomix.net:10000/module/get-server-info:1.0.0 //启动以上命令后打印形如: 操作系统:linux CPU序列号:C2 06 02 00 FF FB EB BF 主板序列号:8BXCQV1 有效IP地址:172.22.0.11 有效MAC地址:02-42-AC-16-00-0B ``` # 2.提供给客户lincese_key文件 暂时手动生成提供给客户,后续需要有个平台可以填写内容后,自动生成 ``` LicenseContentModel licenseContentModel = new LicenseContentModel(); //过期时间【根据需求设置】 licenseContentModel.setExpireTime(DateUtil.offset(new Date(), DateField.YEAR, 10).getTime()); //CPU序列号 licenseContentModel.setCpuSerial("C2 06 02 00 FF FB EB BF"); //主板序列号 licenseContentModel.setMainBoardSerial("8BXCQV1"); //ip地址【暂时未开启IP地址校验 同一台服务器,不同的容器IP是不同的】 licenseContentModel.setIpAddress("172.22.0.11"); //mac地址【暂时未校验,不同容器的mac地址不同】 licenseContentModel.setMacAddress("02-42-AC-16-00-0B"); String data = JSON.toJSONString(licenseContentModel); //使用私钥加密 - 注意:该私钥必须与服务器上的公钥是一对 String cipherText = SecureUtil.rsa("私钥", null).encryptBase64(data, KeyType.PrivateKey); System.out.println(cipherText); ``` 最后,把打印出来的字符串,放入到lincese_key文件中。 ``` IoUtil.write(new FileOutputStream(new File("/data/webapp/license/001_lincese_key")), true, cipherText); ``` # 3.项目的环境yml中配置lincese_key路径 ``` blade.license.filePath=/dockerDir/lincese/lincese_key #如果禁用license校验,可以通过配置关闭。【默认开启状态】 blade.license.enabled=false ```