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

我遵循了您的建议,它符合我的目的。谢谢。 –

相关问题