对pfx证书不太熟悉的,可以看下这篇文章:https://www.cnblogs.com/Herzog3/p/6119359.html
package org.aisino.fabric.mp.util;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigInteger;
import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.cert.Certificate;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.util.Enumeration;
import java.util.Properties;
import org.aisino.fabric.utils.FileUtil;
import org.apache.commons.io.FileUtils;
import org.bouncycastle.util.encoders.Base64;
/**
*
* @author yang6
* 从pfx文件里面读取信息
*
*/
public class ReadPFX {
// 先得到keyStore
private static KeyStore getKeyStore(byte[] pfxData, String password) throws Exception {
KeyStore keystore = KeyStore.getInstance("PKCS12");
keystore.load(new ByteArrayInputStream(pfxData), password.toCharArray());
return keystore;
}
// x509证书
public static X509Certificate getX509Certificate(byte[] pfxData, String password) throws Exception {
X509Certificate x509Certificate = null;
KeyStore keystore = getKeyStore(pfxData, password);
Enumeration<String> enums = keystore.aliases();
String keyAlias = "";
while (enums.hasMoreElements()) {
keyAlias = enums.nextElement();
if (keystore.isKeyEntry(keyAlias)) {
x509Certificate = (X509Certificate) keystore.getCertificate(keyAlias);
}
}
return x509Certificate;
}
// 得到操作员的证书序列号
public static String getOpertatorSn(String strPfx, String strPassword) {
File pfxFile = new File(strPfx);
String opertatorSn = null;
try { //org.apach.commons.io
X509Certificate cert = getX509Certificate(FileUtils.readFileToByteArray(pfxFile), strPassword);
BigInteger serialNumbers = cert.getSerialNumber();
opertatorSn = serialNumbers.toString(16); // 转十六进制
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return opertatorSn;
}
}
如有啥疑问,可以留言,然后也给大家推荐一篇博客:https://blog.csdn.net/ZuoYanYouYan/article/details/77868584