PFX证书转JKS格式

项目需要把PFX证书转成jks格式, 在网上找到一段代码可以做这件是. 现把这段代码粘贴在下面, 做个记号, 以被后用.

<<代码转贴>>

import java.security.KeyStore;
import java.security.Key;
import java.security.cert.Certificate;
import java.io.*;
import java.util.*;

public class PFXToJKSConvert {
    public static final String PKCS12 = "PKCS12";
    public static final String JKS = "JKS";
    public static final String INPUT_KEYSTORE_FILE = "**.pfx";
    public static final String KEYSTORE_PASSWORD = "pwd";
    public static final String OUTPUT_KEYSTORE_FILE = "***.jks";

    public static void main(String[] args) {
        try {
            KeyStore inputKeyStore = KeyStore.getInstance("PKCS12");
            FileInputStream fis = new FileInputStream(INPUT_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, "123456".toCharArray());
            Enumeration e = inputKeyStore.aliases();
            while (e.hasMoreElements()) { // we are readin just one certificate.
                String keyAlias = (String) e.nextElement();
                System.out.println("alias=[" + keyAlias + "]");
                if (inputKeyStore.isKeyEntry(keyAlias)) {
                    Key key = inputKeyStore.getKey(keyAlias, nPassword);
                    Certificate[] certChain = inputKeyStore
                            .getCertificateChain(keyAlias);
                    outputKeyStore.setKeyEntry("outkey", key, "111111"
                            .toCharArray(), certChain);
                }
            }
            FileOutputStream out = new FileOutputStream(OUTPUT_KEYSTORE_FILE);
            outputKeyStore.store(out, nPassword);
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

你可能感兴趣的:(Java,Java,Security)