Certificate

keytool 錯誤:證書回復不包含公鑰

  • March 21, 2012

我最近從 GoDaddy 購買了一個證書,用於對 Adob​​e Air 應用程序進行編碼簽名。

我生成了一個 CSR(程式碼簽名請求)文件並將其發送給他們。他們發回了一個 .spc 證書文件(PKCS #7 格式)。

我正在使用 Adob​​e Air 附帶的 keytool。這是我使用過的命令。

生成企業社會責任:

"C:\Program Files (x86)\Adobe\Flex Builder 3\jre\bin\keytool.exe" -genkey -alias codesigncert -keypass password123 -keyalg RSA -keysize 2048 -dname "CN=displayname,O=companyname,C=US,ST=state,L=city" -keystore codesignstore

將證書導入密鑰庫:

"C:\Program Files (x86)\Adobe\Flex Builder 3\jre\bin\keytool.exe" -import -alias codesigncert -file cert.spc -keystore codesignstore

執行此命令後,我得到的錯誤是:

keytool error: java.lang.Exception: Certificate reply does not contain public key for <codesigncert>

可能出了什麼問題?

我正在關注的指南是這個: http ://help.godaddy.com/article/4780

答案很簡單。證書文件不是由 CSR 文件生成的,它是由不同的 CSR 文件生成的。我只是獲得了一個新證書並且它有效。

將證書導入密鑰庫後,我可以執行以下命令來簽署 Adob​​e Air 中間文件。

adt -sign -alias codesigncert -storetype jks -keystore codesignstore -storepass storepass123 -keypass password123 "C:\myapp\widget.airi" "C:\myapp\widget.air"

我有類似的問題;頒發的證書和證書請求文件不匹配導致錯誤消息:

keytool error: java.lang.Exception: Certificate reply does not contain public key for <xyzzy>

就我而言,我使用的是不同的證書頒發機構 Thawte。問題的原因是,當我去 Thawte 證書網站取我新頒發的證書時,該網站說我的證書可以下載了,但奇怪的是他們預設選擇了一個不同的,兩歲的證書,而不是剛剛頒發的證書。所以,我下載了錯誤的證書。直到我這樣做:

keytool -printcert -v -file the-pkcs7-file

看到證書上的舊日期,我意識到發生了什麼。然後我下載了正確的 PKCS7 證書文件。

引用自:https://serverfault.com/questions/87301