`
zxs19861202
  • 浏览: 915202 次
  • 性别: Icon_minigender_1
  • 来自: 湖北—》上海
社区版块
存档分类
最新评论

数字证书pfx与jks互转换工具类

阅读更多

转载: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  
    }  

 

分享到:
评论

相关推荐

    SSL转换工具jks2pfx

    由于生成的证书是jks格式,nginx不能直接用,需要要转成PEM格式,这要用到jks2pfx工具进行转换。 jks2pfx的命令格式:JKS2PFX.bat keystore password alias exportname keystore:KeyStore文件绝对路径 将jks文件...

    jks2pfx工具

    《使用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

    本文将深入探讨“pgpjks2pfx”这个转换工具,以及它如何帮助用户处理JKS(Java Key Store)文件类型,并将其转换为PFX(Personal Information Exchange)格式。 首先,我们要理解JKS文件是什么。JKS是Java平台中的...

    PKCS12与JKS格式转换器

    PKCS12是一种由RSA Security开发的标准,用于存储用户的私钥、公钥和数字证书。这种格式通常用于个人身份验证,例如在HTTPS服务器证书或电子邮件加密中。一个PKCS12文件(通常以.p12或.pfx为扩展名)是加密的,可以...

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

    JKS是一个存储密钥对和数字证书的数据库,包括公钥和私钥,用于SSL/TLS协议。在Tomcat中,JKS用于存放服务器的SSL证书,确保服务器与客户端之间的通信是加密的。 标题中的"Tomcat9.0安装JKS格式SSL证书"意味着我们...

    数字证书格式详细说明

    数字证书格式详细说明 数字证书是公钥加密系统中不可或缺的一部分,它用于身份验证、数据加密和数字签名。常见的数字证书格式有 X.509,它定义了两种证书:公钥证书和属性证书。 X.509 证书格式由以下部分组成: ...

    jks文件转bks文件.zip

    4. **转换过程**:要将`jks`文件转换为`bks`文件,你需要使用相应的工具或命令行工具,如`keytool`(Java自带)或者`Portecle`(一个图形化的密钥管理和转换工具)。这个过程中通常需要输入源密钥库的密码,以及目标...

    keystoke证书转换nginx证书工具

    `keytool`是Java Development Kit (JDK) 自带的一个命令行工具,用于管理密钥对和数字证书。 首先,我们需要理解SSL/TLS证书的基础知识。SSL(Secure Socket Layer)和其后续版本TLS(Transport Layer Security)是...

    命令行keytool使用 证书DN生成数字证书容器 空格

    总结来说,通过`keytool`命令行工具,我们可以生成并管理数字证书,包括创建具有特定DN的证书,并结合`ConventPFX.java`这样的工具类,将证书导出为PFX格式,方便在不同环境下的使用。在进行这些操作时,务必确保...

    数字证书格式 相关知识 和 方法

    《数字证书格式详解与操作指南》 数字证书在网络安全中扮演着至关重要的角色,它用于确认网络实体的身份,确保信息传输的安全性。本文将深入探讨常见的数字证书格式、它们的区别以及相关的操作方法。 1. 数字证书...

    java下做WSS签名小工具

    `jks2pfx`工具就是用来将JKS转换为PFX格式的,这在需要在非Java环境或不同Java应用之间共享密钥时非常有用。 4. **WSSecurity**: Web Services Security(WSS)是OASIS(Organization for the Advancement of ...

    CSP开发测试工具

    通过这个类,用户可以将JKS中的密钥对或证书转换为PFX格式,或者将PFX格式的数据转换为JKS。 2. `csplib.dll`:这可能是一个动态链接库文件,用于提供CSP相关的功能接口。在Windows环境下,开发者通常会调用这样的...

    生成SSL证书详细信息

    SSL(Secure Sockets Layer)证书是一种数字证书,用于在客户端与服务器之间建立安全连接,确保数据传输的安全性。在实际应用中,尤其是在Web服务领域,SSL证书的应用非常广泛,它可以有效防止数据被窃取或篡改。 #...

    服务器证书安装指南(Websphere)

    服务器证书是用于验证网站服务器身份的数字证书,它由受信任的证书颁发机构(CA)签发。当用户尝试访问使用HTTPS的网站时,浏览器会检查服务器证书的有效性,确保数据加密传输,防止中间人攻击。 ### 2. 在IBM ...

    KeyTool1.6

    **KeyTool1.6:Java密钥管理体系工具与RSA公私钥及服务器证书生成** KeyTool是Java开发环境中内置的一个强大工具,主要用于管理和操作密钥对(公钥和私钥)以及数字证书。在Java安全模型中,这些密钥和证书用于确保...

    arcserver 证书

    2. 准备证书:将获取的.cer或.p7b格式的证书转换为ArcGIS Server所需的.jks或.pfx格式,可能需要使用Keytool或 OpenSSL 工具。 3. 安装证书:登录ArcGIS Server Manager,进入“安全管理”>“SSL设置”页面,上传...

    portecle-1.9.rar

    "portecle-1.9.rar" 是一个专门为Android平台设计的工具,它主要用于处理数字证书,特别是将P12证书转换为BKS格式,以实现HTTPS的双向认证。这个过程涉及到了几个关键的网络安全概念和技术,下面我们将详细探讨。 ...

Global site tag (gtag.js) - Google Analytics