java pfx 证书_Java将pfx证书转换为jks[通俗易懂]

java pfx 证书_Java将pfx证书转换为jks[通俗易懂]packagecom.yangangus.util;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.security.Key;importjava.security.KeyStore;importjava.security.cert.Certifica…

大家好,又见面了,我是你们的朋友全栈君。

packagecom.yangangus.util;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.security.Key;importjava.security.KeyStore;importjava.security.cert.Certificate;importjava.util.Enumeration;public classConventPFXToJKS {public static final String PKCS12 = “PKCS12”;public static final String JKS = “JKS”;public static final String PFX_KEYSTORE_FILE = “D:\\temp\\certs\\wildcard_test_com.pfx”;//pfx文件位置

public static final String PFX_PASSWORD = “pfx_password”;//导出为pfx文件的设的密码

public static final String JKS_KEYSTORE_FILE = “D:\\temp\\certs\\keystore.jks”; //jks文件位置

public static final String JKS_PASSWORD = “jks_password”;//JKS的密码

public static voidcoverTokeyStore() {

FileInputStream fis= null;

FileOutputStream out= null;try{

KeyStore inputKeyStore= KeyStore.getInstance(“PKCS12”);

fis= newFileInputStream(PFX_KEYSTORE_FILE);char[] pfxPassword = null;if ((PFX_PASSWORD == null) || PFX_PASSWORD.trim().equals(“”)) {

pfxPassword= null;

}else{

pfxPassword=PFX_PASSWORD.toCharArray();

}char[] jksPassword = null;if ((JKS_PASSWORD == null) || JKS_PASSWORD.trim().equals(“”)) {

jksPassword= null;

}else{

jksPassword=JKS_PASSWORD.toCharArray();

}

inputKeyStore.load(fis, pfxPassword);

fis.close();

KeyStore outputKeyStore= KeyStore.getInstance(“JKS”);

outputKeyStore.load(null, jksPassword);

Enumeration enums=inputKeyStore.aliases();while (enums.hasMoreElements()) { //we are readin just one//certificate.

String keyAlias =(String) enums.nextElement();

System.out.println(“alias=[” + keyAlias + “]”);if(inputKeyStore.isKeyEntry(keyAlias)) {

Key key=inputKeyStore.getKey(keyAlias, pfxPassword);

Certificate[] certChain=inputKeyStore.getCertificateChain(keyAlias);

outputKeyStore.setKeyEntry(keyAlias, key, jksPassword, certChain);

}

}

out= newFileOutputStream(JKS_KEYSTORE_FILE);

outputKeyStore.store(out, jksPassword);

out.close();

}catch(Exception e) {

e.printStackTrace();

}finally{if (fis != null) {try{

fis.close();

}catch(IOException e) {

e.printStackTrace();

}

}if (out != null) {try{

out.close();

}catch(IOException e) {

e.printStackTrace();

}

}

}

}public static voidmain(String[] args) {//TODO Auto-generated method stub

coverTokeyStore(); //pfx to jks

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134608.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 萨摩亚峰会全球颂将创建第一个全球海洋超强智慧岛

    萨摩亚峰会全球颂将创建第一个全球海洋超强智慧岛

    2021年7月2日
    94
  • 余弦信号DFT频谱分析(继续)

    余弦信号DFT频谱分析(继续)

    2022年1月9日
    44
  • java怎么求数组的和_java求和函数写法

    java怎么求数组的和_java求和函数写法Java经典题目之一,数组的各种求和,今天小编就用一些例子带大家了解一下其中详情。基础求和#includeusingnamespacestd;//数组求和//方法一:时间复杂度为O(n),额外空间为(n)intArraySum(intarr[],intn){intsum=0;for(inti=0;i{sum+=arr[i];}returnsum;}//方法二…

    2022年10月2日
    4
  • 前端开发项目经验_项目管理体系包括哪些

    前端开发项目经验_项目管理体系包括哪些前端开发传统的web开发管理端、H5/小程序、可视化、游戏等Node.js开发服务端接入层、构建工具、云服务等终端开发reactnative、flutter、electron等项目开发过程中涉及的系统涉及、方案调研、技术选型、性能优化、效能提升这些都是想通的这是怎样的一个项目?他遇到什么问题、存在着怎样的瓶颈?又需要怎么去解决?前端面试相关知识点前端常见的框架和工具库重要的是要知道各个框架的区别、掌握框架设计和实现原理Node.js和服务.

    2022年10月21日
    3
  • 更新源metaspolit报错GPG Error「建议收藏」

    更新源metaspolit报错GPG Error「建议收藏」通过msfupdate无法更新到最新版本,需首先更新系统源:)更新系统源报错,提示metaspolitGPGerror:解决方案:输入以下两条命令1、sudoecho‘debhttp://apt.metasploit.com/lucidmain’>/etc/apt/sources.list.d/metasploit-framework.list2、sudowge…

    2022年10月9日
    2
  • seekg()/seekp()与tellg()/tellp()的用法详解

    seekg()/seekp()与tellg()/tellp()的用法详解对输入流操作:seekg()与tellg()对输出流操作:seekp()与tellp()下面以输入流函数为例介绍用法:seekg()是对输入文件定位,它有两个参数:第一个参数是偏移量,第二个参数是基地址。对于第一个参数,可以是正负数值,正的表示向后偏移,负的表示向前偏移。而第二个参数可以是:ios::beg:表示输入流的开始位置ios::cur:表示输入流的当前位置io

    2022年6月9日
    79

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号