# licenseTool **Repository Path**: n_zhe/license-tool ## Basic Information - **Project Name**: licenseTool - **Description**: 基于Spring Boot实现License机制, 提供证书生成页面,证书上传页面。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 5 - **Created**: 2023-01-17 - **Last Updated**: 2023-01-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 密钥,公钥生成方式 当前工程已有对应的密钥公钥文件,有效期10年,当前日期(2022/3/20),如需重新生成,使用下面教程 使用JDK自带的keeyTool工具来生成密钥,公钥. keeyTool工具目录: C:\Program Files\Java\jdk1.8.0_152\jdk1.8.0_152\bin\keeyTool.exe (为下载的jdk的bin目录下) 使用管理员身份启动keeyTool.exe文件,输入以下命令 1、生成私匙库 keytool -genkey -alias privatekey -keysize 1024 -keystore privateKeys.store -validity 3650 2、导出证书 keytool -export -alias privatekey -file certfile.cer -keystore privateKeys.store 3、证书文件导入到公匙库 keytool -import -alias publiccert -file certfile.cer -keystore publicCerts.store 4、最后会在bin目录生成文件privateKeys.store、publicCerts.store拷贝出来替换项目中对应的文件。 参数说明: -alias:别名为privatekey –validity 3650:3650天有效 -keysize 1024:大小,默认为2048,使用默认的太大,使用时会有问题,会报以下错误: keytool error: java.security.InvalidKeyException: The security strength of SHA-1 digest algorithm is not sufficient for this key size ### 操作步骤: 工程下载下来直接导入maven依赖便可启动 (1)分为俩个工程,licenseCreate负责创建证书,直接启动licenseCreate工程的启动类 LicenseCreateApplication.class 启动成功通过地址: http://localhost:1111/ 访问生成证书页面,如下 ![img.png](img.png) 可根据需求自行扩展需要校验的参数,目前支持 日期,mac,ip,用户数,客户数校验,(用户数,客户数校验需要结合自己系统编写代码) licenseCreate工程实际使用中应该单独拆分出来一个独立的工程用来内部人员使用 (2)licenseVerify负责上传校验证书,可直接复制所有文件放入自己项目中便可使用 默认项目启动会校验,安装证书,访问除license的接口会拦截接口并进行license校验,校验失败会跳入证书上传页面 上传后需要重新启动项目进行证书安装,或者调用安装接口(具体在controller包里) 可直接通过地址查看:http://localhost:2222/file.html 如下: ![img_1.png](img_1.png) ### 注意事项: (1)密钥口令必须大于6位的字母加数字组合,否则Truelicense框架会校验失败 (2)如果添加了扩展校验并且使用了实体类包装扩展信息的, 生成证书使用的实体类包名与校验时所用的包名必须一致否则无法解析xml (当前未使用实体类,使用map,不会出现这种情况) (3)如果重新生成公私密钥需要在项目具体配置文件中填入对应的公密钥参数 (4)校验证书的公钥文件目前放在 LicenseUtils包中,需要在maven中配置一起打包,否则无法找到文件,如下添加红框内配置即可 ![img_2.png](img_2.png) (5)如果校验时公钥文件放在resources目录下会解密失败,具体原因忘记了 :grin: ,提醒一下大家避坑! 如有问题可私信!