`
liyanboss
  • 浏览: 142608 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

[转]由pkcs12格式转成jks格式

阅读更多

输入证书: 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();
        }
    }
}
分享到:
评论
1 楼 liyanboss 2007-10-26  
搞iis和tomcat双向认证,要用到这个,记录一下了

相关推荐

    PKCS12与JKS格式转换器

    这里我们关注的是两种常见的密钥库格式:PKCS12(Personal Certificate Security Standard 12)和JKS(Java Key Store)。本文将深入探讨这两种格式,以及如何进行相互转换。 PKCS12是一种由RSA Security开发的标准...

    nginx证书转换jks

    由于Nginx不能直接使用JKS格式的证书,因此需要先将JKS格式转换为PKCS12格式。具体操作如下: ``` keytool -importkeystore -srckeystore oldkeystore.jks -srcalias tomcat -destkeystore newkeystore.p12 -...

    Tomcat更换SSL证书方法(jks与pfx转换)

    使用JWSDP工具包中的`pkcs12import`工具将PFX文件转换为JKS格式。执行以下命令: ```bash C:\Sun\jwsdp-2.0\xws-security\bin\pkcs12import.bat pkcs12import -file server.p12 -alias server -keystore server.jks...

    Android签名文件jks和keystore相互装换.zip

    这个命令将`myapp.jks`转换为PKCS12格式的Keystore文件`myapp.keystore`。 2. **Keystore转JKS** 反过来,如果你有一个Keystore文件,例如`myapp.keystore`,想要转换回JKS,可以这样做: ```bash keytool -...

    jks文件转bks文件.zip

    `p12`(也称为PKCS#12)文件是Microsoft的格式,而`pfx`是其别名,通常包含了私钥、公钥和证书。这些文件也可以被转换为`jks`或`bks`,以便在Java或Android环境中使用。 总的来说,理解并熟练掌握不同类型的密钥库...

    SSL中各证书的转换

    openssl pkcs12 -in d:\tomcatclient.p12 -out d:\key.pem ``` 其中,“d:\tomcatclient.p12”是输入的`.p12`文件路径,“d:\key.pem”是输出的`.pem`文件路径。 #### 注意事项 - 执行此命令时可能需要输入`.p12...

    JKS 密钥库使用专用格式。建议使用 “keytool -importkeystore -srckeystore E:\xxxxxx- pkcs12” 迁移到行业标准格式PKCS12

    \androidstudio\androidstudio_work\CommonDemo\app\fast_keystore.jks -destkeystore E:\androidstudio\androidstudio_work\CommonDemo\app\fast_keystore.jks -deststoretype pkcs12” 迁移到行业标准格式 PKCS12...

    jks转pfx,jks导出pfx证书

    使用keytool.exe,将jks格式证书转换成pfx格式证书。由于本工具未包括keytool.exe 需要安装jdk 才能够正常运行。 没有积分的用户可以根据以下命令行手动导出(keytool.exe 可以在jdk安装目录中找到): keytool.exe ...

    jks与pfx转换工具

    将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

    jks2pfx工具

    PFX文件,又称PKCS#12,是一种包含了用户私钥、公钥和证书链的二进制文件,通常用于跨平台的证书传输。 "jks2pfx工具"的运行依赖于几个关键组件。其中包括: 1. **JKS2PFX.bat**:这是批处理文件,用于调用其他组件...

    Tomcat9.0安装JKS格式SSL证书.rar

    keytool -importkeystore -deststorepass &lt;JKS_password&gt; -destkeypass &lt;JKS_key_password&gt; -destkeystore &lt;JKS_file&gt;.jks -srckeystore &lt;PFX_file&gt;.pfx -srcstoretype PKCS12 -srcstorepass ``` 这里 `&lt;JKS_...

    Key was created with errors: Warning: JKS 密钥库使用专用格式。android Studio打包报错

    建议使用 “keytool -importkeystore -srckeystore E:\lvchuang\lvchuang.jks -destkeystore E:\lvchuang\lvchuang.jks -deststoretype pkcs12” 迁移到行业标准格式 PKCS12。 谈出来的图片如图: 解决的方法其实很...

    JKS2PFX证书转换工具 支持jdk生成证书转换

    而"JKS2PFX证书转换工具"就是针对这些需求应运而生的,它专门用于处理Java Key Store(JKS)和PKCS#12(PFX)格式的证书,以适应不同环境和应用场景。 首先,我们需要理解JKS和PFX这两种类型的证书存储格式。Java ...

    jks转为bks

    其以二进制格式存储,在windows中可以直接导入到密钥区,注意,PKCS#12的密钥库保护密码同时也用于保护Key。 UBER 比较特别,当密码是通过命令行提供的时候,它只能跟keytool交互。整个keystore是通过PBE/SHA1/...

    javakeytool支持的类型及如何将证书导入jks中.docx

    Java KeyStore 有多种类型,常见的有 JKS、JCEKS、PKCS12、BKS 和 UBER 等。JKS 和 JCEKS 是 Java 密钥库(KeyStore)的两种比较常见类型。JKS 的 Provider 是 SUN,在每个版本的 JDK 中都有,JCEKS 的 Provider 是 ...

    pfx证书安装

    1. 证书格式:JKS和PFX是两种常见的证书格式,JKS格式证书是Java密钥库格式,PFX格式证书是PKCS#12格式。 2. 证书安装:证书安装是指将证书安装到服务器中,以便启用HTTPS协议。 3. openssl命令行工具:openssl是...

    证书转换portecle-1.9.zip

    1. **P12**:也称为PKCS#12,是由RSA Security开发的个人身份信息交换格式,用于存储用户的私钥、公钥和证书。P12文件通常用作跨平台的个人证书存储,且通常使用密码保护。 2. **BKS**:Bouncy Castle KeyStore是...

    Jetty9 配置使用HTTPS证书

    在某些情况下,可能需要将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模拟器系统签名(.jks)

    用于Androidstudio模拟器的系统签名,方便进行需要系统签名方面的调试,内含一个生成的platform.jks和系统签名源文件(.pk8和x509.pem等等) ,拿到源文件你也可以自己生成jks或者keystore。 内含jks签名信息: Key ...

Global site tag (gtag.js) - Google Analytics