0

我想更新我之前的自簽名證書,例如:從測試CA返回(簽名的CSR)。我的默認密鑰庫是:Windows的MY更新/刪除證書鏈:無法將密鑰分配給給定的別名

  • 第1步:我創建了一個公私密鑰對,自簽署 認證文件和CSR(私有密鑰存儲在Windows的我的 自我簽署的證書)。

  • 步驟2:將CSR發送給CA.

  • 步驟3:CA返回該公鑰的證書鏈。

現在我想用CA返回的證書替換該自簽名證書。注意:我有存儲在我的商店中的私鑰。

Key privKey = keyStore.getKey(commonName, keyPass); 
System.out.println("invalid private key :" + (privKey == null)); 

// keyStore.deleteEntry(commonName); 
// keyStore.load(null, keyPass); 

if (isPrivateKeyAvailable) { 
    System.out.println("name:" + commonName + " is updatded"); 
    keyStore.setKeyEntry(commonName, privKey, keyPass, chains); 
} else { 
    System.out.println("name:" + commonName + " does not exist"); 
} 

但我得到這些錯誤:

java.lang.UnsupportedOperationException:不能分配的關鍵 定別名。在 sun.security.mscapi.KeyStore.engineSetKeyEntry(KeyStore.java:415)at sun.security.mscapi.KeyStore $ MY.engineSetKeyEntry(KeyStore.java:55) at java.security.KeyStore.setKeyEntry(Unknown Source )在 keygenerator.KeyInstaller.installCertificateInWindowsStore(KeyInstaller.java:284) 在keygenerator.KeyInstaller.doJob(KeyInstaller.java:167)在 keygenerator.KeyGeneration.installCertificate(KeyGeneration.java:171) 在keygenerator.KeyGeneration.main (KeyGeneration.java:68)

回答

1

Windows密鑰庫(Java的名爲Windows-MY)不能直接寫入。您需要將CA返回的私鑰和證書鏈打包到PKCS#12文件(.p12)中,並使用Windows導入工具導入它。

+0

感謝您的關注。請檢查更新 –

+1

我不確定我是否瞭解您的更新。答案是一樣的:你不能以編程方式修改一個windows-my keystore條目。當然,您可以將認證鏈添加到您自己的密鑰存儲中,並將其保存爲p12格式,以便稍後在Windows中導入。 – pedrofb

+0

我遵循了您的建議,它符合我的目的。謝謝。 –

相關問題