pfx批量转成jks工具代码

package com.yjm.pfx2jks;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.security.Key;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.UnrecoverableKeyException;
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
import java.util.Enumeration;
import java.util.Properties;
import org.apache.log4j.Logger;
import com.yjm.pojo.PropertiesInfo;

public class Pfx2JksTools {

	public static Logger logger = Logger.getLogger(Pfx2JksTools.class);

	static {
		Properties ps = new Properties();
		try {
			ps
					.load(PropertiesInfo.class
							.getResourceAsStream("info.properties"));
			PropertiesInfo.pfxPassword = ps.getProperty("pfxpassword");
			PropertiesInfo.jksPassword = ps.getProperty("jkspassword");
			PropertiesInfo.jksAliaseName = ps.getProperty("jksaliasename");
			logger.info("pfxPassword:" + PropertiesInfo.pfxPassword);
			logger.info("jksAliaseName:" + PropertiesInfo.jksAliaseName);
			logger.info("jksPassword:" + PropertiesInfo.jksPassword);
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

	public static void pfx2jks(File file) {
		// 定义变量值
		KeyStore pfxKeyStore = null;
		KeyStore jksKeyStore = null;
		FileInputStream fis = null;
		FileOutputStream fos = null;
		try {
			// 初始化 pfx ,jks keyStore
			pfxKeyStore = KeyStore.getInstance("PKCS12");
			jksKeyStore = KeyStore.getInstance("JKS");
			jksKeyStore.load(null, PropertiesInfo.jksPassword.toCharArray());
			fis = new FileInputStream(file);
			String jksNames = file.getName();
			jksNames = jksNames.substring(0, jksNames.indexOf("."));

			String filejks = file.getParentFile().getAbsolutePath() + "//jks";
			File dirfile = new File(filejks);
			dirfile.mkdirs();
			String jks = filejks + "//" + jksNames + ".jks";
			fos = new FileOutputStream(new File(jks));
			logger.info("预计输出转换后的文件路径:" + new File(jks).getAbsolutePath());
			// 装载 pfx 格式证书
			pfxKeyStore.load(fis, PropertiesInfo.pfxPassword.toCharArray());
			fis.close();
			Enumeration<String> enums = pfxKeyStore.aliases();
			// 遍历keyStore里面的 别名
			while (enums.hasMoreElements()) {
				String aliase = enums.nextElement();
				if (pfxKeyStore.isKeyEntry(aliase)) {
					// 获取key对象
					Key key = pfxKeyStore.getKey(aliase,
							PropertiesInfo.pfxPassword.toCharArray());
					// 获取证书链
					Certificate[] certificates = pfxKeyStore
							.getCertificateChain(aliase);
					// jksKeyStore里面载入key信息
					jksKeyStore.setKeyEntry(PropertiesInfo.jksAliaseName, key,
							PropertiesInfo.jksPassword.toCharArray(),
							certificates);
					// 输出jks证书
					jksKeyStore.store(fos, PropertiesInfo.jksPassword
							.toCharArray());
				}
			}
			fos.flush();
			fos.close();
		} catch (KeyStoreException e) {
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		} catch (CertificateException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (UnrecoverableKeyException e) {
			e.printStackTrace();
		}
	}
}

pfx证书转成jks代码 重命名别名和密码

时间: 2024-10-30 09:48:58

pfx批量转成jks工具代码的相关文章

【游戏开发】Excel表格批量转换成lua的转表工具

一.简介 在上篇博客<[游戏开发]Excel表格批量转换成CSV的小工具> 中,我们介绍了如何将策划提供的Excel表格转换为轻便的CSV文件供开发人员使用.实际在Unity开发中,很多游戏都是使用Lua语言进行开发的.如果要用Lua直接读取CSV文件的话,又要写个对应的CSV解析类,不方便的同时还会影响一些加载速度,牺牲游戏性能.因此我们可以直接将Excel表格转换为lua文件,这样就可以高效.方便地在Lua中使用策划配置的数据了.在本篇博客中,马三将会和大家一起,用C#语言实现一个Exce

Linux下将UTF8编码批量转换成GB2312编码的方法

Linux下将UTF8编码批量转换成GB2312编码的方法 在sqlplus中导入UTF8编码的sql脚本就会出现乱码错误,这时就需要将UTF8编码转换成GB2312编码,下面为大家介绍下在Linux下如何进行转换 UTF8编码和GB2312编码是有区别的,在sqlplus中导入UTF8编码的sql脚本就会出现乱码错误,这时就需要将UTF8编码转换 成GB2312编码,可是一个个的转换十分麻烦,下面小编就教你如何在Linux下将UTF8编码批量转换成GB2312编码. 背景 本人在使用oracl

Spine输出资源一键入Unity3D工具代码

之前预研过2D骨骼动画编辑工具SPINE,感觉其比cocosStudio及Unity3D自带的骨骼动画编辑器(原生Sprite Tree或Uni2D)要更适合有3DSMax习惯的美术,即Spine更容易被美术上手.因为当时教程极少,官网的文字说明还是英文,所以写了一个简明扼要的文档,还是抛砖引玉.之后我就把具体的研究工作交给技术美术了.虽然项目一直还没使用上,但是如果做手机上性价比极高表现力极强的2D骨骼动画,想干掉刀塔传奇动画效果.为妹子加点儿乳摇裙摆无锯齿动画的,非常推荐, 曾经写DEMO使

ppt转换成pdf工具

ppt转换成pdf工具前言:朋友在微博给我留言,让我帮忙把ppt文件转换成pdf,当时也是信口开河,认为直接下载几个转换软件就能马上搞定,但是,一测试却发现,转换之后的文本不是出现了乱码就是转换不出来!想了很久才找到一个可行的方法,使用迅捷ppt转换成pdf转换器,这是一款被誉为市面上最优秀的转换器软件,我们公司在实际运用后感到很实用.很好用. 免费ppt转pdf转换器哪个好?作为目前功能最为强大的ppt转pdf转换器,迅捷ppt转成pdf转换器提供了增强转换模式,具备pdf转Word.pdf转

python打包成.exe工具py2exe0-----No such file or directory错误

转自:http://justcoding.iteye.com/blog/900993 一.简介 py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序. py2exe已经被用于创建wxPython,Tkinter,Pmw,PyGTK,pygame,win32com client和server,和其它的独立程序.py2exe是发布在开源许可证下的. 二.安装py2exe 从h

想效率高些?cad怎么样批量转换成pdf

遇到CAD文件,很多人都会犯愁,因为打不开,因此很多小伙伴都会将CAD文件转换成PDF文件.那么如果面对大量的CAD文件,我们该如何将CAD文件批量转换成PDF呢?这里教大家CAD怎么样批量转换成PDF比较方便. 第一步,下载迅捷CAD编辑器 打开浏览器,输入"迅捷CAD编辑器"(http://cad.xjpdf.com)搜索软件,找到软件下载资源后,请点击立即下载,下载软件安装包,然后按照步骤安装软件即可. 第二步,调出批处理功能 借助于迅捷CAD编辑器将CAD批量转换成PDF文件,

《linux 内核完全剖析》 笔记 由逻辑地址转换成线性地址代码分析

一开始由这段代码引发的纠结 get_base(current->ldt[1]) 下面是各个相关的代码,摘自不同的header files... current是指向当前task的指针 struct desc_struct ldt[3]; struct desc_struct { unsigned long a,b; } ; #define _get_base(addr) ({unsigned long __base; __asm__("movb %3,%%dh\n\t" &quo

Linux批量管理服务器小工具--PSSH

Linux批量管理服务器小工具--PSSH 一.简介 pssh -- parallel ssh program pssh  is  a program for executing ssh in parallel on a number of hosts.  It provides features such as sending input to all of the processes, passing a password to ssh, saving output to files, an

根据Unicode编码用C#语言把它转换成汉字的代码

rt 根据所具有的Unicode编码用C#语言把它转换成汉字的代码 师傅的代码: public static string UnicodeToGB(string text)         {             System.Text.RegularExpressions.MatchCollection mc = System.Text.RegularExpressions.Regex.Matches(text, "\\\\u([\\w]{4})");             i