license.md 1.9 KB

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