2014-02-05 154 views
0

我正在嘗試將證書導入密鑰庫。Keytool - 將證書導入密鑰庫

因此我執行以下步驟:

  1. 創建一個空文件keystore.jks
  2. 創建密鑰工具文件contentent: keytool -genkey -alias server-alias -keyalg RSA -keypass changeit -storepass changeit -keystore keystore.jks

  3. 加入我的證書密鑰庫: keytool -import -v -trustcacerts -alias server-alias -file C:\server.cert -keystore keystore.jks -keypass changeit -storepass changeit

但我總是得到錯誤:

keytool error: java.lang.Exception: Public keys in reply and keystore don't match 

什麼我錯在這裏做什麼,我該如何解決?

回答

0

在第二步中,您始終會生成一個新密鑰,但是如果要將證書導入密鑰庫並將其私鑰導入密鑰庫,則必須使用與證書匹配的密鑰。

因此,您需要在有人簽署服務器證書(存儲在C:\ server.cert中)之前創建的密鑰。

下面的步驟必須在正確的順序進行:

  1. 創建隨機公鑰/私鑰對。私鑰通常保存密碼保護
  2. 創建一個包含從步驟1
  3. 公鑰發送證書請求,其簽名併發送你回來證書(你有server.cert)信任中心的證書請求
  4. 保存從與返回的證書

因此你總是試圖重新執行步驟1和4步沒有2和3。這樣你得到的是「不匹配步驟1中一起私鑰「錯誤。

只需完成所有步驟1-4。或者使用保存的屬於server.cert證書的私鑰(希望你仍然擁有它)。

+0

你能澄清步驟4嗎?當我用'keytool -genkey'生成一個新密鑰時,它是否已經保存在密鑰庫中?所以我只需要導入證書?或者,我**是否有從密鑰庫中導出該私鑰的人,將其與證書捆綁在一起,然後將它們重新導入到密鑰庫中? – Slav

相關問題