2012-07-08 37 views
0

Eclipse EE 3.7,我已經安裝了JavaFX SDK,創造了JavaFX Project。當我打開build.fxbuild文件並選擇Build Properties選項卡時,有一個標題爲Signing Properties的部分。它會要求提供以下信息,簽名屬性:FX構建配置

  • 密鑰庫
  • 存儲密碼
  • 別名
  • 鑰匙密碼

對於Keystore領域,它提供的選項用於瀏覽文件系統,工作區,但我不知道在哪裏找到密鑰庫。任何人都可以幫我弄清楚如何通過Fx Build配置文件進行信息簽名?

回答

2

對於許多應用程序(例如獨立的應用程序),根本就不是必需的代碼簽名 - 這問題就複雜了,而且會降低性能和用戶體驗。代碼簽名僅適用於需要資源outside of the Java sandbox的WebStart和瀏覽器嵌入式應用程序。如果您確定您確實需要簽署您的應用程序,請繼續閱讀。

這裏使用的是Java keytool步驟create your own keystore for signing。出於測試目的,您可以生成自己的自簽名證書。對於部署到普通大衆的安全警告最小化的真實應用程序,最好是purchase a code signing certificate

用於創建密鑰庫用於代碼簽名的一個例子條命令行是:

keytool -genkey -alias signFiles -keystore examplestore 

你會被提示輸入密鑰和密鑰存儲密碼。

JavaFX deployment packaging documentation對如何簽署通過標準的JavaFX SDK應用程序的信息。您可以遵循該描述並使用例如JavaFX ant任務簽名您的jar。

但是,Eclipse似乎有一些內置的功能來執行簽名。如果您想利用該功能,請按照上述說明創建密鑰庫。在擁有適當的密鑰庫之後,將用於創建密鑰庫的值輸入到Eclipse IDE的相應字段中以執行簽名。

將字段與用於前面提供的密鑰庫生成的示例命令行匹配。

Keystore - file location of the keystore containing your signing key: examplestore 
Store-Password - password you assigned to access the keystore 
Alias - friendly name to refer to the key: signFiles 
Key-Password - password you assigned to access the key in the keystore 

雖然在Java JDK安裝目錄提供的默認密鑰庫,這通常不是將其與自己的簽名密鑰和證書相關聯的密鑰庫相同。 JDK提供的密鑰庫主要用於存儲用於驗證SSL連接的證書頒發機構的證書。由給定jdk供應商生成的java密鑰庫遵循一種通用格式,您還可以使用它來存儲簽名密鑰和證書。但是,我不會建議這個,而是建議創建和使用您自己的密鑰庫。通常,您希望將包含代碼簽名密鑰的密鑰存儲區與其他信息分開,並進行備份和非常安全。

+0

偉大的職位,謝謝你:) – bully 2012-08-22 00:07:43

+0

只是想知道 - 沒有OS X Gatekeeper有默認的安全設置,禁止運行任何未簽名的應用程序?我的印象是,這不僅僅侷限於WebStart和瀏覽器嵌入式應用程序(對於最新的Mac OS) – XXL 2012-12-22 11:05:59

+1

是的mac應用程序需要簽署點擊運行,否則你必須按住CTRL-點擊它們才能運行。簽名要求您購買99美元的蘋果開發人員ID訂閱,該ID將授予您一份簽名證書,您可以使用蘋果「codesign」工具對該應用簽名。這個簽名是一個與我在回答中描述的並且不是特定於java代碼的獨立過程。請參閱https://blogs.oracle.com/talkingjavadeployment/entry/java_applications_and_gatekeeper和https://developer.apple.com/resources/developer-id/ – jewelsea 2012-12-22 11:42:13