2012-10-26 87 views
2

我的客戶給了我一個密鑰庫,用於簽署Java applet jar文件。我從它導出一個.cer文件,然後將其導入到cacerts中,但我一直收到「找不到證書鏈」錯誤。它還說「別名必須引用包含私鑰和對應公鑰證書鏈的有效KeyStore密鑰條目」。如何使用提供的密鑰庫簽署jar文件

我試圖加斯東的建議之下,它去如下:

jarsigner -keystore "D:\My Documents\keystore\MyKeyStore.jks" -storepass mypass -signedjar my_signed_jar.jar" unsigned.jar myalias 

Warning: 
The signer's certificate chain is not validated. 

回答

0

如果你只是想籤從密鑰庫罐子,你應該運行在命令行:

% JAVA_HOME%\ bin \ jarsigner -keystore YOUR_KEY_STORE.ks -storepass KS_PASS YOUR_JAR KS_ALIAS

我希望這會對您有所幫助。

+0

感謝您的答覆!我想,這是結果: 的jarsigner -keystore 「d:\我的文檔\密鑰庫\ ProvidedKeyStore.jks」 -storepass爲mypass -signedjar my_signed_jar.jar」 unsigned.jar myalias 警告: 簽名者的證書鏈未經驗證 – user1777295

+0

如果您使用JDK 7,現在嘗試使用JDK 6版本(嘗試使用32位和64位版本) –

1

整個情況是無效的。

  1. 你應該用自己的私鑰簽名JAR文件,而不是其他人的。

  2. 您的客戶承諾通過泄露他的私鑰而犯下主要安全漏洞。

  3. 您提到的關於簽名者證書鏈未經驗證的問題完全是客戶端的問題。他提供了證書:其有效性完全取決於他。

不是你的問題,但不是一個真正的問題,因爲整個情況都是無效的。您應該使用自己的證書籤署自己的代碼。

0

我從中導出了一個.cer文件,然後將其導入到cacerts中,但是我的 不斷收到「Certificate chain not found」錯誤。

當然,鏈不會被發現:)你不應該出口,因爲籤一個罐子,但你必須使用原始密鑰庫關鍵 - 根據生成的證書的關鍵..

如果您擁有所有權限作爲密碼等,您應該使用原始密鑰庫密鑰客戶端給你簽署的jar。接下來,您必須使用jarsigner常用命令類似

jarsigner -keystore C:\working\mystore -storepass myspass 
     -keypass dukekeypasswd MyJarFile.jar duke 

P.S>

請報告是否有幫助

+0

不,不幸的是, – XXL

相關問題