证书文件相互转换

数字证书格式转换:.key和.crt转换成.pem格式
.key 转换成 .pem:

openssl rsa -in temp.key -out temp.pem

.crt 转换成 .pem:

openssl x509 -in tmp.crt -out tmp.pem

crt转为p12证书

openssl pkcs12 -export -in from.crt -inkey privatekey.key -out to.p12 -name "alias"

p12 to jks

keytool -importkeystore -srckeystore keystore.p12 -destkeystore keystore.jks -deststoretype pkcs12

jks to p12

keytool -importkeystore -srckeystore keystore.jks -srcstoretype JKS -deststoretype PKCS12 -destkeystore keystore.p12

jks文件合成
https://www.myssl.cn/tools/merge-jks-cert.html



作者:前浪浪奔浪流
链接:https://www.jianshu.com/p/e9ede1f10d04

相关资源:

Redis数据的导出和导入 - Dcsdn  

GitOps 初探 - Dcsdn 

redis哨兵配置文件 - Dcsdn

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在 Java 中实现 JKS 和 JWKS 文件之间的转换,可以使用 Java KeyStore API 和 JSON Web Key (JWK) API。下面是实现这个过程的一些基本步骤: 1. 从 JKS 文件中读取证书和密钥: ``` KeyStore keystore = KeyStore.getInstance("JKS"); keystore.load(new FileInputStream("example.jks"), "password".toCharArray()); PrivateKey privateKey = (PrivateKey) keystore.getKey("alias", "password".toCharArray()); Certificate cert = keystore.getCertificate("alias"); ``` 2. 将证书和私钥转换为 JWK 对象: ``` JWK jwk = JWK.parseFromPEMEncodedObjects(cert.getEncoded(), privateKey.getEncoded()); ``` 3. 将 JWK 对象转换为 JWKS 对象: ``` JWKSet jwkSet = new JWKSet(jwk); ``` 4. 将 JWKS 对象写入文件: ``` FileOutputStream fos = new FileOutputStream("example.jwks"); fos.write(jwkSet.toJSONObject().toString().getBytes()); fos.close(); ``` 要将 JWKS 文件转换为 JKS 文件,可以执行以下步骤: 1. 从 JWKS 文件中读取 JWKSet 对象: ``` FileInputStream fis = new FileInputStream("example.jwks"); JWKSet jwkSet = JWKSet.load(fis); JWK jwk = jwkSet.getKeys().get(0); ``` 2. 将 JWK 对象转换证书和私钥: ``` X509Certificate cert = jwk.toX509Certificate(); PrivateKey privateKey = jwk.toPrivateKey(); ``` 3. 将证书和私钥存储到 JKS 文件中: ``` KeyStore keystore = KeyStore.getInstance("JKS"); keystore.load(null, null); keystore.setKeyEntry("alias", privateKey, "password".toCharArray(), new Certificate[] {cert}); FileOutputStream fos = new FileOutputStream("example.jks"); keystore.store(fos, "password".toCharArray()); fos.close(); ``` 请注意,这只是一个简单的示例代码,您需要根据自己的需求进行修改和调整。另外,在执行这些代码之前,请确保您已经理解了代码中使用的所有 API 和组件,并且已经正确配置了您的环境和工具。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值