由于上面的结构里面引入了其他包,故在最后,我就不放这个结构的代码在我的github上了
网上有,这个不再细说了,直接上文本:
1、首先要用KeyTool工具来生成私匙库:(-alias别名 –validity 3650表示10年有效)
keytool -genkey -alias privatekey -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
最后生成文件privateKeys.store、publicCerts.store拷贝出来备用。
{
"ipAddress": [
"10.16.248.102"
],
"macAddress": [
"58-00-E3-D4-83-2B"
],
"cpuSerial": "BFEBFBFF000506E3",
"mainBoardSerial": "",
"macCheck": false,
"ipCheck": false,
"cpuCheck": false,
"boardCheck": false
}
{
"subject": "landi",
"privateAlias": "privateKey",
"keyPass": "123456a",
"storePass": "123456a",
"licensePath": "F:\\app\\license.lic",
"privateKeysStorePath": "/privateKeys.store",
"issuedTime": "2019-09-26 14:50:00",
"expiryTime": "2019-09-27 17:45:55",
"consumerType": "User",
"consumerAmount": 1,
"description": "这是证书描述信息",
"licenseCheck": {
"ipCheck":true,
"ipAddress": [
"10.16.248.102", "10.0.5.22"
],
"macCheck":true,
"macAddress": [
"58-00-E3-D4-83-2B", "50-7B-9D-F9-18-41"
],
"cpuSerial": "BFEBFBFF000406E3",
"mainBoardSerial": "L1HF65E00X9"
}
}
{
"result": "ok",
"msg": {
"subject": "landi",
"privateAlias": "privateKey",
"keyPass": "123456a",
"storePass": "123456a",
"licensePath": "F:\\app\\license.lic",
"privateKeysStorePath": "/privateKeys.store",
"issuedTime": "2019-09-26 14:50:00",
"expiryTime": "2019-09-27 17:45:55",
"consumerType": "User",
"consumerAmount": 1,
"description": "这是证书描述信息",
"licenseCheck": {
"ipAddress": [
"10.16.248.102",
"10.0.5.22"
],
"macAddress": [
"58-00-E3-D4-83-2B",
"50-7B-9D-F9-18-41"
],
"cpuSerial": "BFEBFBFF000406E3",
"mainBoardSerial": "L1HF65E00X9",
"macCheck": true,
"ipCheck": true,
"cpuCheck": false,
"boardCheck": false
}
},
"date": "证书安装成功,证书有效期:2019-09-26 14:50:00 - 2019-09-27 17:45:55"
}
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.4.RELEASE)
2019-09-27 14:10:04.196 INFO 16220 --- [ main] cn.bluethink.license.App : Starting App on 9VSNYQQSFL96GK6 with PID 16220 (F:\gitlab\license\target\classes started by Administrator in F:\gitlab\license)
2019-09-27 14:10:04.199 INFO 16220 --- [ main] cn.bluethink.license.App : No active profile set, falling back to default profiles: default
2019-09-27 14:10:05.689 INFO 16220 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8066 (http)
2019-09-27 14:10:05.712 INFO 16220 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2019-09-27 14:10:05.712 INFO 16220 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.17]
2019-09-27 14:10:05.817 INFO 16220 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2019-09-27 14:10:05.818 INFO 16220 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1571 ms
2019-09-27 14:10:06.042 INFO 16220 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
[INFO ] 2019-09-27 14:10:06,274 method:cn.bluethink.license.listener.LicenseCheckListener.onApplicationEvent(LicenseCheckListener.java:60)
++++++++ 开始安装证书 ++++++++
[INFO ] 2019-09-27 14:10:06,430 method:cn.bluethink.license.core.LicenseVerify.install(LicenseVerify.java:41)
证书安装成功,证书有效期:2019-09-26 14:50:00 - 2019-09-27 17:45:55
[INFO ] 2019-09-27 14:10:06,430 method:cn.bluethink.license.listener.LicenseCheckListener.onApplicationEvent(LicenseCheckListener.java:73)
++++++++ 证书安装结束 ++++++++
2019-09-27 14:10:06.463 INFO 16220 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8066 (http) with context path ''
2019-09-27 14:10:06.466 INFO 16220 --- [ main] cn.bluethink.license.App : Started App in 2.523 seconds (JVM running for 2.854)
后台控制台信息输出: