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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java实现异步调用

    java实现异步调用1、使用线程池的逻辑实现异步调用packagecom.ourlang.dataextract.controller;importcom.google.common.util.concurrent.ThreadFactoryBuilder;importcom.ourlang.dataextract.common.CommonResult;importcom.ourlang.dataextract.service.ISInPatientListService;importorg.apach

    2022年7月11日
  • 三阶魔方还原公式_三阶魔方顶层小鱼口诀

    三阶魔方还原公式_三阶魔方顶层小鱼口诀1.第二层棱块归位:2.顶层十字3.顶层棱中间块归位这一步的目的是使顶层的4个棱中间块全部归位。转动顶层(U),若可以使一个棱中间块归位(如下图左,这里以[红-黄]块为例),而其他3个都

    2022年8月6日
  • linux下svn命令使用大全

    最近经常使用svn进行代码管理,这些命令老是记不住,得经常上网查,终于找了一个linux下svn命令使用大全:1、将文件checkout到本地目录 svncheckoutpath(path是服务器 上的目录)例如:svncheckoutsvn://192.168.1.1/pro/domain简写:svnco2、往版本库中添加新的文件 svnaddfile例如:svn…

    2022年4月11日
  • 悲观锁和乐观锁的使用[通俗易懂]

    悲观锁和乐观锁的使用[通俗易懂]1、悲观锁(PessimisticLock),顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。最常用的就是select..forupdate,它是一种行锁,会把select出来的结果行锁住,在本

    2022年8月23日
  • 中国历年人口出生数1983至2020岁_中国历年出生人口数据

    中国历年人口出生数1983至2020岁_中国历年出生人口数据1983年:2052万1984年:2050万1985年:2196万1986年:2374万1987年:2508万1988年:2445万1989年:2396万1990年:2374万1991年:2250万1992年:2113万1993年:2120万1994年:2098万1995年:2052万1996年:2057万1997年:2028万1998年:1934万1999年:1827万2000年:1765万2001年:1696万2002年:1641万2003年:1594万200.

    2022年9月5日
  • 基于yolov4的目标检测_yolov5预训练模型

    基于yolov4的目标检测_yolov5预训练模型1项目的克隆和必要的环境依赖1.1项目的克隆YOLOv5的代码是开源的,因此我们可以从github上克隆其源码。不得不说GitHub的确是全球最大的男性交友网站,里面的人个个都是人才,yolov5发布才一年左右的时间,YOLOv5就已经更新了5个分支了,分别是yolov5.1-yolov5.5分支。该项目就是利用的yolov5.5分支来作为讲解。首先打开yolov5的github的https://github.com/ultralytics/yolov5/tree…

    2022年8月29日

发表回复

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

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