1 Truelicense是什么
TrueLicense是一个开源的证书管理引擎,可以用于license的生成和有效性的验证。
使用场景:当项目交付给客户之后用签名来保证客户不能随意使用项目,默认校验了开始结束时间,可扩展增加mac地址校验等。
2 准备工作
1下载springboot-license.zip包
地址:https://download.csdn.net/download/qq_34281865/86747260
说明:keystore私匙库的有效期到2122年
2 初始化目录
系统环境 | 新建目录 |
---|---|
Windows | D:/home/license |
Linux | /home/license |
将springboot-license.zip解压到新建目录下面。
3 生成license文件
1 启动license-generate-project-1.0.0.jar
进入jar目录,执行java -jar license-generate-project-1.0.0.jar
2 调用生成证书接口
输入参数:证书有效期(单位:天)、物理地址(MAC)、证书项目名称
输出结果:license.zip(将该压缩包解压到初始化目录下面)
4 实现license验证
以下操作均以Windows环境为例,Linux环境也类似。(修改spring.profiles.active值即可)
1 修改配置文件
2 增加Maven依赖
3 增加license相关类
4 物理地址(MAC)验证
测试前置条件:
生产者 | 物理地址(MAC) |
---|---|
调用生成证书接口 | 3C-16-DB-A7-4F-CA |
本地电脑 | 2C-16-DB-A7-4F-CA |
测试步骤:
进入jar目录,执行java -jar license-demo-project-1.0.0.jar
测试结果:
5 证书有效期启动验证(超过有效期)
测试前置条件:
生产者 | 时间 |
---|---|
证书有效期 | 2022-10-11 13:30:13至2022-10-21 23:59:59 |
本地电脑 | 2022-11-11 13:30:13 |
测试步骤:
进入jar目录,执行java -jar license-demo-project-1.0.0.jar
测试结果:
启动失败,如下图:
6 证书有效期启动验证(符合有效期)
测试前置条件:
生产者 | 时间 |
---|---|
证书有效期 | 2022-10-11 13:30:13至2022-10-21 23:59:59 |
本地电脑 | 2022-10-11 13:30:18 |
测试步骤:
进入jar目录,执行java -jar license-demo-project-1.0.0.jar
测试结果:
启动成功,如下图:
7 证书有效期访问验证(超过有效期)
测试前置条件:
生产者 | 时间 |
---|---|
证书有效期 | 2022-10-11 13:30:13至2022-10-21 23:59:59 |
本地电脑 | 2022-11-11 13:30:13 |
测试步骤:
-
在符合证书有效期的条件下,成功启动license-demo-project-1.0.0.jar
-
修改本地电脑时间为2022-11-11 13:30:13,然后访问接口(获取请求IP)
测试结果:
访问失败,如下图:
8 防止手动修改本机时间,影响证书有效期的限制
5 源码位置
个人交流Q:772182648
以上是本人自己总结,并且在项目中实际用到的。新手一枚,不喜勿喷!