以下用
top-down的方式講述如何對一個 jar 簽章:
keystore & key 說明:
=============java 將用來簽章的key存在keystore中,每個key包含private key(密秘)和 public-key certificate(公開)。
一個 keystore檔案就是一個專存這些
key的資料庫,而用
alias 來索引其中的一個 key。
keystore檔有一個密碼保護,而其中的每個key也可以有(也可以不設)自己的密碼保護。
簽章操作:
=======-> jarsigner -keystore
my.keystore -storepass 123456 myprogram.jar
myprogram(若這個key有設密碼保護,會再要求輸入密碼;或是直接在 jarsigner 後多加參數-keypass xxxx)
這樣就可以用 my.keystore 中的那個 alias 為 myprogram 的key,對 myprogram.jar 簽章。
如何產生keystore 和 key:
================-> keytool -genkey -alias myprogram -keystore my.keystore -storepass 123456 -validity 1800 < myprogram.keyconf
(如果沒有先做好myprogram.keyconf,則輸手動輸入key的資訊)
這樣會產生一個 keystore 檔 my.keystore,裡面有一個 alias 叫 myprogram 的 key,此 key 的有效期限為1800天。
Ref:
Signing and Verifying JAR FilesJAR Signing