转载:http://blog.csdn.net/xieboshi/archive/2009/05/20/4204439.aspx
public class ConventPFX {
public static final String PKCS12 = "PKCS12";
public static final String JKS = "JKS";
public static final String PFX_KEYSTORE_FILE = "c:\\test.pfx";
public static final String KEYSTORE_PASSWORD = "123456";
public static final String JKS_KEYSTORE_FILE = "c:\\test.jks";
public static void coverTokeyStore() {
try {
KeyStore inputKeyStore = KeyStore.getInstance("PKCS12");
FileInputStream fis = new FileInputStream(PFX_KEYSTORE_FILE);
char[] nPassword = null;
if ((KEYSTORE_PASSWORD == null)
|| KEYSTORE_PASSWORD.trim().equals("")) {
nPassword = null;
} else {
nPassword = KEYSTORE_PASSWORD.toCharArray();
}
inputKeyStore.load(fis, nPassword);
fis.close();
KeyStore outputKeyStore = KeyStore.getInstance("JKS");
outputKeyStore.load(null, KEYSTORE_PASSWORD.toCharArray());
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, nPassword);
Certificate[] certChain = inputKeyStore
.getCertificateChain(keyAlias);
outputKeyStore.setKeyEntry(keyAlias, key, KEYSTORE_PASSWORD
.toCharArray(), certChain);
}
}
FileOutputStream out = new FileOutputStream(JKS_KEYSTORE_FILE);
outputKeyStore.store(out, nPassword);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void coverToPfx() {
try {
KeyStore inputKeyStore = KeyStore.getInstance("JKS");
FileInputStream fis = new FileInputStream(JKS_KEYSTORE_FILE);
char[] nPassword = null;
if ((KEYSTORE_PASSWORD == null)
|| KEYSTORE_PASSWORD.trim().equals("")) {
nPassword = null;
} else {
nPassword = KEYSTORE_PASSWORD.toCharArray();
}
inputKeyStore.load(fis, nPassword);
fis.close();
KeyStore outputKeyStore = KeyStore.getInstance("PKCS12");
outputKeyStore.load(null, KEYSTORE_PASSWORD.toCharArray());
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, nPassword);
Certificate[] certChain = inputKeyStore
.getCertificateChain(keyAlias);
outputKeyStore.setKeyEntry(keyAlias, key, KEYSTORE_PASSWORD
.toCharArray(), certChain);
}
}
FileOutputStream out = new FileOutputStream(PFX_KEYSTORE_FILE);
outputKeyStore.store(out, nPassword);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
//coverToPfx(); //jks to pfx
//coverTokeyStore(); // pfx to jks
}
}
分享到:
相关推荐
由于生成的证书是jks格式,nginx不能直接用,需要要转成PEM格式,这要用到jks2pfx工具进行转换。 jks2pfx的命令格式:JKS2PFX.bat keystore password alias exportname keystore:KeyStore文件绝对路径 将jks文件...
《使用jks2pfx工具将JKS转换为PFX:详细步骤与原理解析》 在数字证书领域,JKS(Java Key Store)和PFX(Personal Information Exchange)是两种常见的密钥存储格式。JKS主要用于Java应用程序,而PFX则广泛应用于...
本文将深入探讨“数字证书查看、拆分和格式转换工具”这一主题,涉及的关键词包括“SSL”、“keystore”、“crt”和“key”。 首先,让我们了解SSL(Secure Sockets Layer)和它的升级版TLS(Transport Layer ...
本文将深入探讨“pgpjks2pfx”这个转换工具,以及它如何帮助用户处理JKS(Java Key Store)文件类型,并将其转换为PFX(Personal Information Exchange)格式。 首先,我们要理解JKS文件是什么。JKS是Java平台中的...
PKCS12是一种由RSA Security开发的标准,用于存储用户的私钥、公钥和数字证书。这种格式通常用于个人身份验证,例如在HTTPS服务器证书或电子邮件加密中。一个PKCS12文件(通常以.p12或.pfx为扩展名)是加密的,可以...
JKS是一个存储密钥对和数字证书的数据库,包括公钥和私钥,用于SSL/TLS协议。在Tomcat中,JKS用于存放服务器的SSL证书,确保服务器与客户端之间的通信是加密的。 标题中的"Tomcat9.0安装JKS格式SSL证书"意味着我们...
数字证书格式详细说明 数字证书是公钥加密系统中不可或缺的一部分,它用于身份验证、数据加密和数字签名。常见的数字证书格式有 X.509,它定义了两种证书:公钥证书和属性证书。 X.509 证书格式由以下部分组成: ...
4. **转换过程**:要将`jks`文件转换为`bks`文件,你需要使用相应的工具或命令行工具,如`keytool`(Java自带)或者`Portecle`(一个图形化的密钥管理和转换工具)。这个过程中通常需要输入源密钥库的密码,以及目标...
`keytool`是Java Development Kit (JDK) 自带的一个命令行工具,用于管理密钥对和数字证书。 首先,我们需要理解SSL/TLS证书的基础知识。SSL(Secure Socket Layer)和其后续版本TLS(Transport Layer Security)是...
总结来说,通过`keytool`命令行工具,我们可以生成并管理数字证书,包括创建具有特定DN的证书,并结合`ConventPFX.java`这样的工具类,将证书导出为PFX格式,方便在不同环境下的使用。在进行这些操作时,务必确保...
《数字证书格式详解与操作指南》 数字证书在网络安全中扮演着至关重要的角色,它用于确认网络实体的身份,确保信息传输的安全性。本文将深入探讨常见的数字证书格式、它们的区别以及相关的操作方法。 1. 数字证书...
`jks2pfx`工具就是用来将JKS转换为PFX格式的,这在需要在非Java环境或不同Java应用之间共享密钥时非常有用。 4. **WSSecurity**: Web Services Security(WSS)是OASIS(Organization for the Advancement of ...
通过这个类,用户可以将JKS中的密钥对或证书转换为PFX格式,或者将PFX格式的数据转换为JKS。 2. `csplib.dll`:这可能是一个动态链接库文件,用于提供CSP相关的功能接口。在Windows环境下,开发者通常会调用这样的...
SSL(Secure Sockets Layer)证书是一种数字证书,用于在客户端与服务器之间建立安全连接,确保数据传输的安全性。在实际应用中,尤其是在Web服务领域,SSL证书的应用非常广泛,它可以有效防止数据被窃取或篡改。 #...
服务器证书是用于验证网站服务器身份的数字证书,它由受信任的证书颁发机构(CA)签发。当用户尝试访问使用HTTPS的网站时,浏览器会检查服务器证书的有效性,确保数据加密传输,防止中间人攻击。 ### 2. 在IBM ...
**KeyTool1.6:Java密钥管理体系工具与RSA公私钥及服务器证书生成** KeyTool是Java开发环境中内置的一个强大工具,主要用于管理和操作密钥对(公钥和私钥)以及数字证书。在Java安全模型中,这些密钥和证书用于确保...
2. 准备证书:将获取的.cer或.p7b格式的证书转换为ArcGIS Server所需的.jks或.pfx格式,可能需要使用Keytool或 OpenSSL 工具。 3. 安装证书:登录ArcGIS Server Manager,进入“安全管理”>“SSL设置”页面,上传...
"portecle-1.9.rar" 是一个专门为Android平台设计的工具,它主要用于处理数字证书,特别是将P12证书转换为BKS格式,以实现HTTPS的双向认证。这个过程涉及到了几个关键的网络安全概念和技术,下面我们将详细探讨。 ...