簡體   English   中英

簽署Java桌面應用程序

[英]Signing Java desktop application

我使用Swing(myProg.jar)創建了一個Java桌面應用程序。 我目前將我的應用程序打包為我的Mac用戶的.app,我使用InnoSetup為我的Windows用戶制作一個setup.exe文件。 我還提供了一個myProg.exe包裝器來啟動myProg.jar。

現在,為了擺脫我的用戶計算機上的SmartScreen和其他保護措施,我認為我需要簽署我的應用程序。 但是我讀的越多,它對我來說就越混亂。

任何人都可以為我澄清以下幾點嗎?

1)我需要什么樣的證書? 無論如何要讓它免費或至少便宜嗎?

2)我需要准確簽署什么? 我應該簽署myProg.jar文件,.app文件嗎? setup.exe? myProg.exe包裝器? 他們都是?

3)已解決 -當我更新程序並用myProg.jar的新版本替換myProg.jar時,它將如何工作?

非常感謝!

您的JDK應該包含一個名為jarsigner工具。 此工具允許您免費簽署jar文件。

1)用於簽名的密鑰需要在java密鑰庫中(默認.keystore )您可以從.der格式將密鑰導入密鑰庫。

2)您只能簽署.jar文件

3)它將用新簽名的文件覆蓋舊文件。 就像簡單的副本一樣。 除非您的安裝人員這樣做,否則不會執行簽名驗證。

此外,並非每個簽名都相同。 例如,如果您嘗試注冊加密提供程序,則必須在Oracle JVM上運行Oracle簽名的簽名。 請參閱: https//docs.oracle.com/javase/8/docs/technotes/guides/security/crypto/HowToImplAProvider.html#Step6

例:

要生成密鑰:

keytool -genkey -keyalg RSA -alias key_alias -keystore mystore.keystore -keysize 2048

簽名jar:

jarsigner -keystore mystore.keystore -tsa http://tsa.safecreative.org MyJARFile.jar key_alias_from_keystore

要驗證簽名:

jarsigner -verify jar-file

我不確定這會解決我們的問題。 總的來說,你需要做的是sign os可執行文件。 在這種情況下.exe.app

一種可能的解決方案是簽署app包裝器的可執行文件(如果是windows .exe )。 為此,請參閱: https//msdn.microsoft.com/en-us/library/aa387764.aspx

在您使用基於Unix的系統時,我會嘗試運行Mono的簽名工具。 在“signcode”上看單聲道文檔(我無法提供鏈接,沒有足夠的代表)

這應該擺脫“Unknown Publisher”消息,但除非您可以讓OS開發人員簽署您的證書,否則將向用戶顯示一些消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM