java - 以编程方式将 JKS 转换为 PEM
问题描述
我需要将 JKS(受密码保护)转换为包含密钥对(或选定别名)的 .PEM,以供其他服务使用。
到目前为止,我已经写了这个:
@Transactional
public ResponseEntity<String> getPublicKeyFromJKS(long jksid) {
try {
//1. Lift the entity
JKSFile jksFile = jksFileRepo.getOne(jksid);
//2. Get the Object from S3
S3Object object = getS3ObjectService.getS3Object(jksFile.getS3ObjectKey());
System.out.println(object.getObjectContent().getHttpRequest());
InputStream in = object.getObjectContent();
//3. Make KeyStore...
KeyStore keyStore = KeyStore.getInstance("JKS");
keyStore.load(in, rsaConfig.getKeystorePassword().toCharArray());
//4. Get keys to PEM formatted file.
PrivateKey privateKey = (PrivateKey) keyStore.getKey("access", rsaConfig.getKeystorePassword().toCharArray());
Certificate certificate = keyStore.getCertificate("access");
PublicKey publicKey = certificate.getPublicKey();
KeyPair keyPair = new KeyPair(publicKey, privateKey);
System.out.println(keyPair.getPrivate().toString());
System.out.println(keyPair.getPublic().toString());
我正在从我的亚马逊 S3 存储桶中提取请求的 JKS 并毫无问题地读取私钥和公钥……但我现在希望能够将它们放入 PEM 格式的密钥库(供其他服务使用)。
感谢您的任何建议!我希望以编程方式...不使用 java 命令行 keytool。
解决方案
推荐阅读
- javascript - 当有人点击网站上的任何位置时,活动和焦点课程将被删除
- node.js - 如何将数据从 AWS API Gateway 自定义授权方传递到 AWS Lambda 函数?
- python - 100 天的 Python - 无法复制
- crm - 在构建第三方应用程序以使其与 USD 兼容之前要考虑的事项
- asp.net-mvc - 当我从控制器返回 mvc 中的视图时出错
- php - 未定义变量:transaction_id(查看:resources/views/view_all_transaction.blade.php)
- machine-learning - 如何通过对干净数据进行训练来生成无噪声数据?
- c - SDL2 不会显示图像
- git - 詹金斯多分支管道未触发分支更改
- python - 使用函数显示图像按钮