前言
在客户服务器部署软件项目后,为了项目版权管控或者对项目进行授权收费处理的,就需要实现项目的授权和许可验证。
在这里讲解的是使用 license证书 的形式实现授权和许可验证(已通过测试)。
主要是通过 IP地址、MAC地址、CPU序列号、主板序列号 服务器硬件信息生成一个License证书,同时可以设置生效时间与失效时间,控制项目到期之后项目不可用。
实现思路
license授权机制的原理
1、生成密钥对,包含私钥和公钥。
2、授权者保留私钥,使用私钥对授权信息诸如使用截止日期,mac 地址等内容生成 license 签名证书。
3、公钥给使用者,放在代码中使用,用于验证 license 签名证书是否符合使用条件。
实现流程
1、使用JDK自带的 keytool 生成密钥对(生成私钥和公钥两个文件)
2、License服务端获取服务器硬件信息
3、License服务器根据服务器硬件信息和私钥文件加密生成 License.lic 文件,也就是License证书。
4、License客户端安装License证书并生效和到期日期进行校验
实现步骤
一、使用KeyTool生成密匙对
1、自己本地随便找个位置创建一个文件夹,我这里创建了名为 License 的文件夹
2、进入到该文件中,在上面的路径中输入cmd并回车,会打开命令窗口
3、在命令窗口中依次输入以下命令
keytool -genkey -keysize 1024 -keyalg DSA -validity 3650 -alias "privateKey" -keystore "privateKeys.keystore" -storepass "ljh521548" -keypass "ljh521548" -dname "CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN"
# 导出命令
keytool -exportcert -