1.keystore的有效時間
keytool -genkey -keystore mykeystore -alias jwstest -validity 365
用 -validity valdays 來設定, 預設的是 6個月
2.sign jar檔案
jarsigner -keystore mykeystore -storepass xxxx yourtest.jar jwstest
直接用 storepass 傳password 給jarsigner, 不需要每次單獨輸入, 很适合做批處理,對多個jar一起sign. 因為用jws,是以引用的jar都需要sign.
3. 引用的已經被别人sign 過的jar
如果不特殊處理,可能會遇到 exception
jar resources in jnlp file are not signed by same certificate
驗證jar 是不是已經被sign 可以用-verfiy這個指令
jarsigner -certs -verbose -verify yourtest.jar
通常解決的辦法是把這個sign過的jar 寫成單獨的jnlp, 然後在自己的主jnlp中引用它
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+" codebase="http://localhost:8080/webstart/" href="signedjar.jnlp">
<information>
<title>signed jar</title>
<vendor>abc company</vendor>
<offline-allowed/>
</information>
<offline-allowed/>
<resources>
<jar href="signed.jar"/>
</resources>
<component-desc/>
</jnlp>
<resources>
<j2se version="1.5+"/>
<jar href="jaxbw.jar"/>
<jar href="substance.jar"/>
<jar href="jaxb-api.jar"/>
<jar href="jaxb-impl.jar"/>
<jar href="jaxb-xjc.jar"/>
<jar href="jsr173_api.jar"/>
<extension name="signedjar" href="signedjar.jnlp"/>