基于 TrueLicense 的项目证书验证

简介: 基于 TrueLicense 的项目证书验证

使用场景


1、 开发的软件产品在交付使用的时候,往往有一段时间的试用期,这期间我们不希望自己的代码被客户二次拷贝,这个时候 license 就派上用场了,license 的功能包括设定有效期、绑定 ip、绑定 mac 等。


2、 授权方直接生成一个 license 给使用方使用,如果需要延长试用期,也只需要重新生成一份 license 即可,无需手动修改源代码。


原理简介


1、TrueLicense 是一个开源的证书管理引擎,详细介绍见 https://truelicense.java.net/


2、license 授权机制的原理


  • 生成密钥对,包含私钥和公钥。


  • 授权者保留私钥,使用私钥对授权信息诸如使用截止日期,mac 地址等内容生成 license 签名证书。


  • 公钥给使用者,放在代码中使用,用于验证 license 签名证书是否符合使用条件


生成证书


利用jdk keytool工具制作证书


keytool -genkeypair -keysize 1024 -validity 3650 -alias "privateKey" -keystore "privateKeys.keystore" -storepass "deepglint_store_pwd123" -keypass "deepglint_key_pwd123" -dname "CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN"


利用jdk keytool工具导出证书文件


keytool -exportcert -alias "privateKey" -keystore "privateKeys.keystore" -storepass "deepglint_store_pwd123" -file "certfile.cer"


利用jdk keytool工具将证书文件导入到证书库中


keytool -import -alias "publicCert" -file "certfile.cer" -keystore "publicCerts.keystore" -storepass "deepglint_store_pwd123"


image.png


image.png


  • lic-auth-server:用于开发者给客户生成License证书的示例代码


  • lic-auth-client:模拟需要给客户部署的业务项目


获取服务器信息


http://127.0.0.1:10000/license/getServerInfos


image.png


给客户机生成license


image.png


image.png


image.png


image.png


源码


https://gitee.com/pingfanrenbiji/lic-auth


相关文章
|
9月前
|
iOS开发 开发者
📝 App备案与iOS云管理式证书 ,公钥及证书SHA-1指纹的获取方法
在iOS应用程序开发过程中,进行App备案并获取公钥及证书SHA-1指纹是至关重要的步骤。本文将介绍如何通过appuploader工具获取iOS云管理式证书 Distribution Managed 公钥及证书SHA-1指纹,帮助开发者更好地理解和应用该过程。
|
1月前
|
iOS开发
App备案与iOS云管理式证书 ,公钥及证书SHA-1指纹的获取方法
App备案与iOS云管理式证书 ,公钥及证书SHA-1指纹的获取方法
89 0
App备案与iOS云管理式证书 ,公钥及证书SHA-1指纹的获取方法
|
4月前
|
算法 数据安全/隐私保护
客户端验证 证书解析
客户端验证 证书解析
64 7
|
4月前
|
存储 弹性计算 运维
客户端证书自动颁发脚本
【4月更文挑战第30天】
43 1
|
4月前
|
安全 网络安全 数据安全/隐私保护
SSL 证书如何工作?
SSL 证书如何工作?
55 0
|
算法 安全 网络安全
客户端如何验证ssl/tls证书的合法性
客户端是如何验证ssl/tls证书的合法性
465 1
|
C++
C++ 自动导入数字证书
C++ 自动导入数字证书
148 0
软件源证书校验问题
软件源证书校验问题
334 0
|
网络安全
关于密钥验证
关于密钥验证
83 0
|
网络安全
更新 LetsEncrypt 证书
更新 LetsEncrypt 证书
221 0