您还需要为私钥输入提供证书(公开密钥).对于由CA签发的证书,该链是CA的证书和结束证书.对于自签名证书,您只能拥有自签名证书
例:
KeyPair keyPair = ...;//You already have this
X509Certificate certificate = generateCertificate(keyPair);
KeyStore keyStore = KeyStore.getInstance("JKS");
keyStore.load(null,null);
Certificate[] certChain = new Certificate[1];
certChain[0] = certificate;
keyStore.setKeyEntry("key1",(Key)keyPair.getPrivate(),pwd,certChain);
要生成证书,请遵循link:
例:
public X509Certificate generateCertificate(KeyPair keyPair){
X509V3CertificateGenerator cert = new X509V3CertificateGenerator();
cert.setSerialNumber(BigInteger.valueOf(1)); //or generate a random number
cert.setSubjectDN(new X509Principal("CN=localhost")); //see examples to add O,OU etc
cert.setIssuerDN(new X509Principal("CN=localhost")); //same since it is self-signed
cert.setPublicKey(keyPair.getPublic());
cert.setNotBefore();
cert.setNotAfter();
cert.setSignatureAlgorithm("SHA1WithRSAEncryption");
PrivateKey signingKey = keyPair.getPrivate();
return cert.generate(signingKey,"BC");
}