java 密钥保存在哪里_java – 如何在keystore中存储密钥

您还需要为私钥输入提供证书(公开密钥).对于由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");

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值