我在向硬令牌颁发证书时遇到问题,我拥有的是我创建的 PKCS12 密钥库,并希望将其作为 PKCS11 移动到硬令牌中。
我可以成功生成密钥和证书并将它们保存在 p12 密钥库中,并且可以使用此设备的管理控制台将 p12 文件导入硬令牌。但是当我尝试以编程方式完成最后一步时,我得到了不同的结果。
使用管理工具导入的 p12 文件我在设备中拥有的是
-序列
号
-签名和密钥交换使用
证书
私钥
公钥
以编程方式导入所有步骤
- 序列
号
- 签名和加密
证书
私钥
最终结果是最终用户无法使用该设备进行签名。我正在使用 SunPKCS11。
编辑:用于导入密钥的代码:
KeyStore.PrivateKeyEntry priEntry =
new KeyStore.PrivateKeyEntry(keys.getPrivate(), certificateArray);
KeyStore.PasswordProtection password =
new KeyStore.PasswordProtection(pass.toCharArray());
store.setEntry("Entry", priEntry, password);
编辑 2 keytool -list
有趣的是,当我使用以下命令时,输出是完全相同的
keytool -keystore NONE -storetype pkcs11 -list