2014-12-04 67 views
0

我最近創建了一個小程序,當我將它嵌入到我的站點中時,Java會阻止它,因爲它沒有由受信任的權威機構簽名。使用可信證書爲我的小程序簽名

我已經從CACert(.crt & .cer文件)下載了一個認證,並且我有我的jar文件(FollowMe.jar)。

經過幾個小時在谷歌上搜索如何用crt文件簽署jar文件我仍然無法做到這一點。有人可以幫我嗎?這太令人沮喪了。

+0

請添加更多的信息去幫助別人來幫助你。例如你如何簽署它,任何代碼,鏈接到你試圖使用的網站。 – Ruskin 2014-12-04 18:54:27

回答

-1

下面是做事的常用方法:

keytool -import -trustcacerts -alias appletCert -file CAcert.crt 
jarsigner "C:\path\FollowMe.jar" appletCert 
+0

首先感謝您的答覆。我試過命令,它給了我一個錯誤:「非法選項 - jarsigner」 – kskyriacou 2014-12-04 20:12:56

+0

拍攝應該有一個新行 jarsigner「C:\ path \ FollowMe.jar」appletCert – anonymous 2014-12-04 20:55:53

+0

@anonymous您沒有正確格式化它。這也是無稽之談。除非有一個具有該別名的私鑰,否則它將不起作用,並且如果有私鑰,則不需要'-trustcacerts'參數。 – EJP 2014-12-06 22:26:52

0

要登錄你的問題,你需要用私有密鑰(通常在PCKS12JKS格式)密鑰庫罐子它不是我清楚,如果你有一個私鑰或不是因爲你評論說:

I have downloaded a certification from CACert

它聽起來有點混亂給我,anywise我假設你有一個正確的密鑰庫,將簽署你可以使用使用jarsigner這是後續指令罐子FO UND在$JAVA_HOME/bin

jarsigner -keystore [yourKeystore] -storeType [PKCS12 or JKS] [yourApplet.jar] [keyAlias] 

如果像我懷疑你想簽訂沒有你已經知道,這是不可能的私鑰的證書的罐子,你需要一個私鑰來執行此操作。您是在後續選項:

  1. 生成使用keytool與自署名證書密鑰對(這也是在$JAVA_HOME/bin)用如下命令如下:

keytool -genkey -keyalg [RSA or another] -alias [yourkeyalias] -keystore [yourkeystore.jks] -storepass [keystorePassword] -validity [validity period for your certificate in days] -keysize [key size for algorithm in RSA for example 2048]

然後填寫關於提示證書的主題DN。

請注意,使用自簽名證書,您可以生成密鑰庫來進行測試來簽署您的jar然而爲了讓jvm將您的applet識別爲可信,您不能使用自簽名證書對applet進行簽名,而必須簽署它帶有一個密鑰和一個可信證書頒發機構簽署的用於Java代碼簽名的證書。所以看第二個選項。

  • 生成密鑰和一個csr(證書籤名請求),並向其產生代碼簽名的java證書來簽名csr和生成的證書的證書授權的請求。然後將證書,密鑰和證書鏈放到密鑰庫中,並使用jarsigner命令對jar文件簽名。您可以在許多java代碼簽署供應商之一看到說明,例如Symantec,Thawte,Digicert,Globalsign, Entrust或其他一些(您可以通過google進行搜索:)。
  • 希望這有助於

    +0

    我會試試這個,謝謝! – kskyriacou 2014-12-08 16:47:41

    +0

    @kyriacoss終於可以幫助你嗎? – albciff 2014-12-12 09:53:21

    相關問題