Java 从密钥库获取私钥

Java 从密钥库获取私钥,java,keystore,Java,Keystore,我使用以下代码从密钥库导出证书和密钥,该密钥库是我在Windows中使用keytool创建的: final KeyStore keystore = KeyUtil.loadKeystore("keystore.jks", "pass"); UserInfo userinfo = new UserInfo(WSusername, WSpassword); X509Certificate clientcert = KeyUtil.getCertificate(CLIENT_KEY_ALIAS

我使用以下代码从密钥库导出证书和密钥,该密钥库是我在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时失败。

我的问题是,当我使用keytool生成密钥库时,它没有将PrivateKey创建为密钥项。为了解决这个问题,我导入了.p12密钥库作为私钥,这很有效。我的原始代码在上面运行