最近Niagara4.9更新了,自己写的驱动要强制签名了。整个过程还是比较简单的,在此记录一下
环境说明
- java版本:
1.8.0_202
- niagara版本:
4 4.9.0.198
- 工作目录:
D:\\test
- 代码目录:
D:\\test\\sign-test
生成签名文件
打开cmd,进入工作目录,输入下面命令
keytool -genkey -alias my-cert -keyalg RSA -ext EKU="codeSigning" -validity 365 -keypass K3yP@ss -storepass St0reP@ss -keystore my_signing_profile.jks
- keytool 是java自带的一个工具具体用法大家可以自行百度一下相关信息
创建xml文件
创建和刚才生成的jks文件同名的xml文件my_signing_profile.xml
内容如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>Code Signing Properties</comment>
<entry key="niagara.signing.keypass.my-cert">K3yP@ss</entry>
<entry key="niagara.signing.storepass">St0reP@ss</entry>
<entry key="niagara.signing.profileType">com.tridium.signing.RestrictedSigningProfile</entry>
<entry key="niagara.signing.standardtsa">http://timestamp.digicert.com</entry>
</properties>
注意箭头和红框的三个地方,这是要非常注意的,这三个信息是存储证书的信息,一定要和上面keytool命令后面的参数一致,注意特殊字符(要转义,或尽可能不用)。
workbench信任证书
在工作目录下执行
keytool -exportcert -alias my-cert -keypass K3yP@ss -storepass St0reP@ss -keystore my_signing_profile.jks -rfc -file my-cert.pem
打开workbench,打开证书管理工具,将刚才生成的my-cert.pem添加到信任列表
为jar包签名
为gradle添加构建命令
在代码目录下的build.gradle中添加如下代码
subprojects { Project p ->
p.pluginManager.withPlugin('com.tridium.niagara-module') {
p.niagaraModule {
certAlias = "my-cert"
}
}
}
构建
方式1
在项目目录下,执行
gradlew.bat jar -Pniagara.signing.profile=D:\\test\\my_signing_profile.xml
方式2
在代码目录的gradle.properties添加配置
niagara.signing.profile=D:\\test\\my_signing_profile.xml
然后和之前打包一样,运行gradle build就可以了
这样打出来的jar就直接是签好名的了,可以直接使用