最近Niagara4.9更新了,自己寫的驅(qū)動要強制簽名了。整個過程還是比較簡單的,在此記錄一下
環(huán)境說明
- 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

執(zhí)行過程

執(zhí)行結(jié)果
- keytool 是java自帶的一個工具具體用法大家可以自行百度一下相關(guān)信息

keytool
創(chuàng)建xml文件
創(chuàng)建和剛才生成的jks文件同名的xml文件my_signing_profile.xml
內(nèi)容如下:
<?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命令后面的參數(shù)一致,注意特殊字符(要轉(zhuǎn)義,或盡可能不用)。
workbench信任證書
在工作目錄下執(zhí)行
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添加到信任列表

導(dǎo)入證書
為jar包簽名
為gradle添加構(gòu)建命令
在代碼目錄下的build.gradle中添加如下代碼
subprojects { Project p ->
p.pluginManager.withPlugin('com.tridium.niagara-module') {
p.niagaraModule {
certAlias = "my-cert"
}
}
}
構(gòu)建
方式1
在項目目錄下,執(zhí)行
gradlew.bat jar -Pniagara.signing.profile=D:\\test\\my_signing_profile.xml
方式2
在代碼目錄的gradle.properties添加配置
niagara.signing.profile=D:\\test\\my_signing_profile.xml
然后和之前打包一樣,運行g(shù)radle build就可以了
這樣打出來的jar就直接是簽好名的了,可以直接使用