# license-tool **Repository Path**: ccxee/license-tool ## Basic Information - **Project Name**: license-tool - **Description**: License 生成与验证工具 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-30 - **Last Updated**: 2026-06-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # License 生成与验证工具 本工具用于生成 `application` 后端服务所需的 license 授权文件。 ## 环境要求 - JDK 17 或以上 - Maven 3.8 或以上 ## 打包 在项目根目录执行: ```bash mvn clean package -DskipTests ``` 打包完成后,可执行 jar 位于: ``` target/license-tool.jar ``` ## 功能说明 工具提供三个命令: | 命令 | 说明 | | --- | --- | | `gen-key` | 生成 RSA-2048 密钥对 | | `gen` | 使用私钥生成 license 文件 | | `verify` | 使用公钥验证 license 文件 | ## 使用步骤 ### 1. 生成密钥对 ```bash java -jar license-tool.jar gen-key --outputDir=./keys ``` 执行后会在 `./keys` 目录生成: - `private.key`:私钥,用于生成 license,请妥善保管 - `public.key`:公钥,用于服务端验证 license ### 2. 生成 license 文件 ```bash java -jar license-tool.jar gen --privateKey=./keys/private.key --output=./license.lic --appId=myAppId --customer="应用名称" --expireAt="2027-07-01 00:00:00" --maxNodes=1 ``` 参数说明: | 参数 | 必填 | 默认值 | 说明 | | --- | --- | --- | --- | | `--privateKey` | 否 | `./keys/private.key` | 私钥文件路径 | | `--output` | 否 | `./license.lic` | 生成的 license 文件路径 | | `--appId` | 否 | `myAppId` | 应用标识,需与后端配置一致 | | `--customer` | 否 | 空 | 客户名称 | | `--machineCode` | 否 | 空 | 机器码(可选) | | `--expireAt` | 是 | 无 | 授权过期时间,格式 `yyyy-MM-dd HH:mm:ss` | | `--maxNodes` | 否 | `1` | 最大节点数 | ### 3. 验证 license 文件 ```bash java -jar license-tool.jar verify --license=./license.lic --publicKey=./keys/public.key --appId=myAppId ``` 验证成功会输出:`license 验证通过,有效期至:...` ## 部署到服务端 1. 将生成的 `public.key` 内容配置到后端 `application-prod.yml`: ```yaml license: enabled: true path: /opt/application/license/license.lic public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA... check-interval: 300s app-id: myAppId ``` 2. 将生成的 `license.lic` 上传到服务端配置的路径: ```bash /opt/application/license/license.lic ``` 3. 确保服务端以 `prod` 环境启动,license 校验即会生效。 ## 注意事项 - 私钥 `private.key` 必须严格保密,只能保存在授权签发端。 - 公钥 `public.key` 可以公开,随服务端部署。 - 当前时间超过 `--expireAt` 后,服务将无法启动;运行时超过有效期也会拒绝服务。 - 只在 `prod` 或 `production` 环境下进行校验,开发/测试环境不受影响。