Window+Java环境证书生成说明,pfx证书已经生成

Window+Java环境证书生成说明

 

阅读说明:给具备基本开发能力的人提供自制证书的生成步骤,证书属于敏感信息,生产证书请勿泄漏。

 

前置条件:Windows系统、JDK1.6以上版本、java编译工具。

 

 

  1. window系统运行cmd命令

 

  1. 跳转到${javahome}/bin路径

 

  1. 执行命令keytool -genkey -alias test(别名) -keypass 123123(私钥密码) -keyalg RSA(算法) -sigalg sha256withrsa(算法小类) -keysize 1024(密钥长度) -validity 365(有效期) -keystore d:/test.jks(生成路径) -storepass 123123(主密码)

 

或直接执行(不带注释说明):keytool -genkey -alias test -keypass 123123 -keyalg RSA -sigalg sha256withrsa -keysize 1024 -validity 365 -keystore d:/test.jks -storepass 123123

 

至此jks格式证书生成完毕

 

  1. 转换为Windows的pfx格式,将如下代码贴到编译器中执行:
package key;



import java.io.FileInputStream;    

import java.io.FileOutputStream;    

import java.security.Key;    

import java.security.KeyStore;    

import java.security.cert.Certificate;    

import java.util.Enumeration;    

   

public class JKS2PFX {    

    public static final String PKCS12 = "PKCS12";    

    public static final String JKS = "JKS";    

    public static final String PFX_KEYSTORE_FILE = "D://test.pfx";    

    public static final String KEYSTORE_PASSWORD = "123123";    

    public static final String JKS_KEYSTORE_FILE = "D://test.jks";    

   

    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();    

    }    

}    

 

至此,pfx证书已经生成,内含私钥,通过创建时的密码进行签名调用。

 

  1. 双击pfx,输入密码导入Windows。

 

  1. 在IE中选择“工具--Internet选项--内容”下选择证书,选择base64导出证书公钥,为cer格式,过程如下:

 

 

 

至此,公钥证书已经导出,交给对方进行配置。

猜你喜欢

转载自blog.csdn.net/qq_15204179/article/details/83109718
今日推荐