2014-10-07 60 views
2

我們的Java應用程序具有輸出Java applet的功能,該applet可以上傳到我們的聯機存儲庫。最近,我們一直遇到Oracle安全更新的問題,這些安全更新要求小程序進行代碼簽名,除非客戶機器上的Java安全設置被降低。簽名包含鬆散類文件的Java小應用程序

爲了解決這個問題,我們試圖在applets服務器端上傳時對它們進行排序,但是我遇到了一些麻煩。該codeisiging似乎做工精細用這樣的命令(使用Digicert證書):

jarsigner -tsa http://timestamp.digicert.com -keystore ./keystore.jks -storepass pass /path/to/jar alias 

但我們仍然得到一個錯誤,指出:

This application contains both signed and unsigned code' 

我認爲這正在發生,因爲Java應用程序輸出包含主jar文件和幾個.class文件的applet。無論如何避免這個錯誤,而不是擺脫.class文件?我們現在想要解決這個問題,而不必對輸出該applet的Java應用程序進行任何更改。

回答

4

您只能簽署JAR文件,而不是鬆散的類文件。類文件本身沒有地方可以放置簽名信息,如果他們這樣做了,它將是非常多餘的。 在JAR文件中,簽名散列進入MANIFEST並且公鑰在相關的RSA或DSA文件中出現。 您將要執行下列操作之一:

  • 推薦:包中所有類爲簽署的JAR文件。您也可以簽署組件,簽名意味着分發 - 而不是創作者。
  • 有個人用戶將您的小程序位置添加到他們的Exception Site List
  • 讓公司的系統管理員將您的小程序位置(或證書散列)添加到他們的Deployment Rule Set
相關問題