我最近創建了一個小程序,當我將它嵌入到我的站點中時,Java會阻止它,因爲它沒有由受信任的權威機構簽名。使用可信證書爲我的小程序簽名
我已經從CACert(.crt & .cer文件)下載了一個認證,並且我有我的jar文件(FollowMe.jar)。
經過幾個小時在谷歌上搜索如何用crt文件簽署jar文件我仍然無法做到這一點。有人可以幫我嗎?這太令人沮喪了。
我最近創建了一個小程序,當我將它嵌入到我的站點中時,Java會阻止它,因爲它沒有由受信任的權威機構簽名。使用可信證書爲我的小程序簽名
我已經從CACert(.crt & .cer文件)下載了一個認證,並且我有我的jar文件(FollowMe.jar)。
經過幾個小時在谷歌上搜索如何用crt文件簽署jar文件我仍然無法做到這一點。有人可以幫我嗎?這太令人沮喪了。
下面是做事的常用方法:
keytool -import -trustcacerts -alias appletCert -file CAcert.crt
jarsigner "C:\path\FollowMe.jar" appletCert
首先感謝您的答覆。我試過命令,它給了我一個錯誤:「非法選項 - jarsigner」 – kskyriacou 2014-12-04 20:12:56
拍攝應該有一個新行 jarsigner「C:\ path \ FollowMe.jar」appletCert – anonymous 2014-12-04 20:55:53
@anonymous您沒有正確格式化它。這也是無稽之談。除非有一個具有該別名的私鑰,否則它將不起作用,並且如果有私鑰,則不需要'-trustcacerts'參數。 – EJP 2014-12-06 22:26:52
要登錄你的問題,你需要用私有密鑰(通常在PCKS12
或JKS
格式)密鑰庫罐子它不是我清楚,如果你有一個私鑰或不是因爲你評論說:
I have downloaded a certification from CACert
它聽起來有點混亂給我,anywise我假設你有一個正確的密鑰庫,將簽署你可以使用使用jarsigner
這是後續指令罐子FO UND在$JAVA_HOME/bin
:
jarsigner -keystore [yourKeystore] -storeType [PKCS12 or JKS] [yourApplet.jar] [keyAlias]
如果像我懷疑你想簽訂沒有你已經知道,這是不可能的私鑰的證書的罐子,你需要一個私鑰來執行此操作。您是在後續選項:
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進行搜索:)。希望這有助於
我會試試這個,謝謝! – kskyriacou 2014-12-08 16:47:41
@kyriacoss終於可以幫助你嗎? – albciff 2014-12-12 09:53:21
請添加更多的信息去幫助別人來幫助你。例如你如何簽署它,任何代碼,鏈接到你試圖使用的網站。 – Ruskin 2014-12-04 18:54:27