一、取公钥,例子中server.crt放在D盘根路径下
//获得给定格式的证书工厂
CertificateFactory cf = CertificateFactory.getInstance("X.509");
//读取证书的输入流
FileInputStream fis = new FileInputStream("D:/server.crt");
//获取证书对象
Certificate cert = cf.generateCertificate(fis);
//关闭输入流
fis.close();
//获取公钥
PublicKey publicKey = cert.getPublicKey();
二、获取私钥
1.直接读取server.key文件会报错:
java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: IOException : algid parse error, not a sequence
需要把server.key文件转换为PKCS8格式:
命令:
openssl pkcs8 -topk8 -nocrypt -in server.key -out myrsakey_pcks8
生成一个PKCS8格式的秘钥myrsakey_pcks8
myrsakey_pcks8的内容:
-----BEGIN PRIVATE KEY-----
MIICXQIBAAKBgQDB49bqrPV4BEmoWmBsLy/JNVbWC1Rz/tkKAjvszeE+8cQwxmYQ
oJMKX