使用方法

  1. 生成publicCerts.keystore
### license生成证书命令,JDK自带keytool工具
 
#生成:在当前目录下,生成一个名为privateKeys.keystore的密钥库,同时指定密钥库密码为public_password1234,第一个条目为privateKey,指定条目密码为private_password1234
keytool -genkeypair -keysize 1024 -validity 1 -alias "privateKey" -keystore "privateKeys.keystore" -storepass "public_password1234" -keypass "private_password1234" -dname "CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN"
 
#导出:将密钥库中privateKey的条目,导出到一个名为certfile.cer的数字文件
keytool -exportcert -alias "privateKey" -keystore "privateKeys.keystore" -storepass "public_password1234" -file "certfile.cer"
 
#导入:将刚刚导出的数字文件,导入为一个新的密钥库publicCerts.keystore
keytool -import -alias "publicCert" -file "certfile.cer" -keystore "publicCerts.keystore" -storepass "public_password1234"
 
 
参数释义:
alias:第一个条目别名
validity:证书有效期,单位:天
keystore:指定密钥库名称
storepass:指定密钥库密码
keypass:指定别名对应密码(私钥密码)
 
此三命令执行完之后,会生成三个文件:privateKeys.keystore,publicCerts.keystore,certfile.cer。
保留publicCerts.keystore
privateKeys.keystore(保密)
  1. 将publicCerts.keystore放入license-client项目的resources/license目录下
    在这里插入图片描述

  2. 修改license-client项目ClientInit类中的两个变量,与前面keytool填写的值一样
    在这里插入图片描述

  3. 业务项目引入maven依赖

    <dependency>
        <groupId>ledison</groupId>
        <artifactId>license-client</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
    
  4. 业务项目的resources下,创建license文件夹,并将生成的证书文件放在该目录(生成方法在后面)
    在这里插入图片描述

  5. 启动boot项目,会进行拦截提示
    在这里插入图片描述

license-client

基于spring boot starter设计,内置了生成好的公钥,方便平时对业务系统颁发证书。
项目启动时会进行一次服务器证书验证,代码在ClientInit类。
在这里插入图片描述

项目运行过程中会拦截请求,当达到阈值可再次进行证书验证,代码在LicenseCheckInterceptor类。
在这里插入图片描述
可以自己增加验证参数,起到更好的验证效果,具体代码就不一一展示了,有疑问可以评论。

client-server

该项目要注意保密,特别是main方法下的参数值,一旦泄露可能会被冒用。

项目用于颁发证书文件,是一个普通可执行的jar项目,通过填写信息来生成证书文件。
使用方式:

  1. 修改LicenseApp的main方法参数,参数值与keytool生成证书时的内容对应。
    在这里插入图片描述

  2. 修改完成后执行main方法,根据提示来进行填写
    注意:第四点的是否验证授权服务器地址,如果觉得范围不够,还可以判断服务器IP和其他信息,可打断点进行添加调试。输入Y,会验证物理硬件及有效天数;输入N,则不会验证物理硬件,仅判断证书的有效天数
    在这里插入图片描述

代码

https://gitee.com/oneoldman/license-core

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐