我想更新我之前的自簽名證書,例如:鏈從測試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)
感謝您的關注。請檢查更新 –
我不確定我是否瞭解您的更新。答案是一樣的:你不能以編程方式修改一個windows-my keystore條目。當然,您可以將認證鏈添加到您自己的密鑰存儲中,並將其保存爲p12格式,以便稍後在Windows中導入。 – pedrofb
我遵循了您的建議,它符合我的目的。謝謝。 –