输入证书: cert/test.pfx 密码假设为123456
输出证书:cert/test.jks
在cmd下运行:
D:\temp\certtest>java ConvertPKCS12ToJKS
显示
keystore type=PKCS12
alias=[my certificate]
/**
* Convert PKCS12 format digital certificate(treated as a PKCS12 keystore)
* to a JKS format keystore, which could be used in JSSE(Although JSSE has
* a tool to recognize PKCS12, internally it's using JKS format).
*/
import java.security.KeyStore;
import java.security.Key;
import java.security.cert.Certificate;
import java.io.*;
import java.util.*;
public class ConvertPKCS12ToJKS
{
//certificate store format
public static final String PKCS12 = "PKCS12";
public static final String JKS = "JKS";
// PKCS12 keystore properties
public static final String INPUT_KEYSTORE_FILE = "cert/test.pfx"; //"cert/dev_coo1.p12";
public static final String KEYSTORE_PASSWORD = "123456"; //"123";
// JKS output file
public static final String OUTPUT_KEYSTORE_FILE = "cert/test.jks";
public static void main(String[] args)
{
try
{
KeyStore inputKeyStore = KeyStore.getInstance("PKCS12");
FileInputStream fis = new FileInputStream(INPUT_KEYSTORE_FILE);
// If the keystore password is empty(""), then we have to set
// to null, otherwise it won't work!!!
char[] nPassword = null;
if ((KEYSTORE_PASSWORD == null) || KEYSTORE_PASSWORD.trim().equals(""))
{
nPassword = null;
}
else
{
nPassword = KEYSTORE_PASSWORD.toCharArray();
}
inputKeyStore.load(fis, nPassword);
fis.close();
System.out.println("keystore type=" + inputKeyStore.getType());
//----------------------------------------------------------------------
// get a JKS keystore and initialize it.
KeyStore outputKeyStore = KeyStore.getInstance("JKS");
outputKeyStore.load(null, "changeit".toCharArray());
// Now we loop all the aliases, we need the alias to get keys.
// It seems that this value is the "Friendly name" field in the
// detals tab <-- Certificate window <-- view <-- Certificate
// Button <-- Content tab <-- Internet Options <-- Tools menu
// In MS IE 6.
Enumeration enum = inputKeyStore.aliases();
while (enum.hasMoreElements()) // we are readin just one certificate.
{
String keyAlias = (String)enum.nextElement();
System.out.println("alias=[" + keyAlias + "]");
if (inputKeyStore.isKeyEntry(keyAlias))
{
Key key = inputKeyStore.getKey(keyAlias, nPassword);
Certificate[] certChain = inputKeyStore.getCertificateChain(keyAlias);
outputKeyStore.setKeyEntry("dev", key, "changeit".toCharArray(), certChain);
}
}
FileOutputStream out = new FileOutputStream(OUTPUT_KEYSTORE_FILE);
outputKeyStore.store(out, nPassword);
out.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
分享到:
相关推荐
这里我们关注的是两种常见的密钥库格式:PKCS12(Personal Certificate Security Standard 12)和JKS(Java Key Store)。本文将深入探讨这两种格式,以及如何进行相互转换。 PKCS12是一种由RSA Security开发的标准...
由于Nginx不能直接使用JKS格式的证书,因此需要先将JKS格式转换为PKCS12格式。具体操作如下: ``` keytool -importkeystore -srckeystore oldkeystore.jks -srcalias tomcat -destkeystore newkeystore.p12 -...
使用JWSDP工具包中的`pkcs12import`工具将PFX文件转换为JKS格式。执行以下命令: ```bash C:\Sun\jwsdp-2.0\xws-security\bin\pkcs12import.bat pkcs12import -file server.p12 -alias server -keystore server.jks...
这个命令将`myapp.jks`转换为PKCS12格式的Keystore文件`myapp.keystore`。 2. **Keystore转JKS** 反过来,如果你有一个Keystore文件,例如`myapp.keystore`,想要转换回JKS,可以这样做: ```bash keytool -...
`p12`(也称为PKCS#12)文件是Microsoft的格式,而`pfx`是其别名,通常包含了私钥、公钥和证书。这些文件也可以被转换为`jks`或`bks`,以便在Java或Android环境中使用。 总的来说,理解并熟练掌握不同类型的密钥库...
openssl pkcs12 -in d:\tomcatclient.p12 -out d:\key.pem ``` 其中,“d:\tomcatclient.p12”是输入的`.p12`文件路径,“d:\key.pem”是输出的`.pem`文件路径。 #### 注意事项 - 执行此命令时可能需要输入`.p12...
\androidstudio\androidstudio_work\CommonDemo\app\fast_keystore.jks -destkeystore E:\androidstudio\androidstudio_work\CommonDemo\app\fast_keystore.jks -deststoretype pkcs12” 迁移到行业标准格式 PKCS12...
使用keytool.exe,将jks格式证书转换成pfx格式证书。由于本工具未包括keytool.exe 需要安装jdk 才能够正常运行。 没有积分的用户可以根据以下命令行手动导出(keytool.exe 可以在jdk安装目录中找到): keytool.exe ...
将jks文件生成pfx文件的工具,亲测可以使用。 例如: JKS2PFX server.jks 123456 tomcat exportfile c:\progra~1\Java\jre1.5.0_06\bin 该命令将server.jks中别名为tomcat...openssl pkcs12 -info -in exportfile.pfx
PFX文件,又称PKCS#12,是一种包含了用户私钥、公钥和证书链的二进制文件,通常用于跨平台的证书传输。 "jks2pfx工具"的运行依赖于几个关键组件。其中包括: 1. **JKS2PFX.bat**:这是批处理文件,用于调用其他组件...
keytool -importkeystore -deststorepass <JKS_password> -destkeypass <JKS_key_password> -destkeystore <JKS_file>.jks -srckeystore <PFX_file>.pfx -srcstoretype PKCS12 -srcstorepass ``` 这里 `<JKS_...
建议使用 “keytool -importkeystore -srckeystore E:\lvchuang\lvchuang.jks -destkeystore E:\lvchuang\lvchuang.jks -deststoretype pkcs12” 迁移到行业标准格式 PKCS12。 谈出来的图片如图: 解决的方法其实很...
而"JKS2PFX证书转换工具"就是针对这些需求应运而生的,它专门用于处理Java Key Store(JKS)和PKCS#12(PFX)格式的证书,以适应不同环境和应用场景。 首先,我们需要理解JKS和PFX这两种类型的证书存储格式。Java ...
其以二进制格式存储,在windows中可以直接导入到密钥区,注意,PKCS#12的密钥库保护密码同时也用于保护Key。 UBER 比较特别,当密码是通过命令行提供的时候,它只能跟keytool交互。整个keystore是通过PBE/SHA1/...
Java KeyStore 有多种类型,常见的有 JKS、JCEKS、PKCS12、BKS 和 UBER 等。JKS 和 JCEKS 是 Java 密钥库(KeyStore)的两种比较常见类型。JKS 的 Provider 是 SUN,在每个版本的 JDK 中都有,JCEKS 的 Provider 是 ...
1. 证书格式:JKS和PFX是两种常见的证书格式,JKS格式证书是Java密钥库格式,PFX格式证书是PKCS#12格式。 2. 证书安装:证书安装是指将证书安装到服务器中,以便启用HTTPS协议。 3. openssl命令行工具:openssl是...
1. **P12**:也称为PKCS#12,是由RSA Security开发的个人身份信息交换格式,用于存储用户的私钥、公钥和证书。P12文件通常用作跨平台的个人证书存储,且通常使用密码保护。 2. **BKS**:Bouncy Castle KeyStore是...
在某些情况下,可能需要将jks格式的证书转换为pkcs12格式,即.p12文件。这种转换可以通过编写Java程序完成,上述Java代码就是一个例子。程序加载jks文件,遍历其中的证书和密钥,然后将它们以p12格式导出到指定的...
文档主要包括三部分内容 ... openssl生成的pem格式证书转换为p12(pfx/pkcs12)、jks格式证书 keytool生成的jks证书转换为 p12(pfx/pkcs12)、pem格式证书 4。证书安全说明 常用crt/cer、pem、p12/pfx、jks解释说明
用于Androidstudio模拟器的系统签名,方便进行需要系统签名方面的调试,内含一个生成的platform.jks和系统签名源文件(.pk8和x509.pem等等) ,拿到源文件你也可以自己生成jks或者keystore。 内含jks签名信息: Key ...