我有以下代码从密钥库导出证书和密钥,我在Windows中使用keytool
创建:
final KeyStore keystore = KeyUtil.loadKeystore("keystore.jks", "pass");
UserInfo userinfo = new UserInfo(WSusername, WSpassword);
X509Certificate clientcert = KeyUtil.getCertificate(CLIENT_KEY_ALIAS, keystore);
X509Certificate servercert = KeyUtil.getCertificate(SERVER_KEY_ALIAS, keystore);
PrivateKey clientprivate = KeyUtil.getPrivateKey(CLIENT_KEY_ALIAS, CLIENT_KEY_PASSWORD, keystore);
然而,它在最后一行失败,“无法检索私钥进行签名” 它可以检索clientcert,但是当它尝试clientprivate时,它会失败。
答案 0 :(得分:1)
我的问题是,当我使用keytool生成密钥库时,它没有将PrivateKey创建为密钥条目。为了解决这个问题,我导入了.p12密钥库作为私钥,这是有效的。我上面的原始代码工作了。