一、首先安装openssl(网上下载)
二、然后,通过jdk自带的keytool工具创建秘钥对
1.创建rsa密钥对(公钥和私钥)并储存在keystore文件中:
keytool -genkeypair -alias "myalias" -keyalg RSA -keystore keystore.jks
2. 从keystore文件中导出使用x509标准验证的数字证书,包含公钥:
keytool -exportcert -alias "myalias" -file cert.cer -keystore keystore.jks
注意:
keytool没有提供从keystore文件导出私钥的工具,需要编程实现此功能。
从keystore文件导出的证书、密钥都是DER格式,可以使用openssl工具转换成PEM格式。
三、openssl
1.openssl是一套强大的工具集,包含各种加解密算法,信息摘要及签名算法,密钥和证书管理等。
2.openssl使用的默认数据格式是PEM格式,也支持DER格式,可以进行互相转换。
3.创建私钥:
openssl genrsa -out private.key
若需要对私钥加密,可以使用 -des -des3等参数。
4.密钥管理,格式转换
使用私钥创建对应的公钥
openssl rsa -in private.key -out public.pem -pubout
5. DER/CER格式公钥转换为PEM格式
<span style="font-family: Arial; font-size: 14px; line-height: 26px;">openssl x509 -inform der -in mycer.cer -out mycer.pem</span>
6. x509命令用于管理x509标准的证书
将DER/CER格式证书转换成PEM格式
openssl x509 -in cert.cer -inform der -outform PEM -out cert.pem
从证书中导出公钥
openssl x509 -in cert.pem -pubkey -out public.pem
将密钥使用pkcs8加密
openssl pkcs8 -in private.key -nocrypt -topk8 -out private.p8
将pkcs8密钥解密
openssl pkcs8 -in private.p8 -nocrypt
8. PEM--DER/CER(BASE64--DER编码的转换)
openssl x509 -outform der -in mycer.pem -out mycer.der
9.
PEM--P7B(PEM--PKCS#7)
openssl crl2pkcs7 -nocrl -certfile mycer.cer -out mycer.p7b
10.
PEM--PFX(PEM--PKCS#12)
openssl pkcs12 -export -out mycer.pfx -inkey privateKey.key -in mycer.crt -certfile mycer.crt
11.
PEM--p12(PEM--PKCS#12)
openssl pkcs12 -export -out Cert.p12 -in Cert.pem -inkey key.pem
12. P7B--PEM(PKCS#7--PEM)
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
13.
P7B--PFX(PKCS#7--PKCS#12)
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer
14.
PFX/p12--PEM(PKCS#12--PEM)
openssl pkcs12 -in certificate.pfx -out certificate.cer
如无需加密pem中私钥,可以添加选项-nodes;
如无需导出私钥,可以添加选项-nokeys;
15. PEM BASE64--X.509文本格式
openssl x509 -in Key.pem -text -out Cert.pem
16.
PFX文件中提取私钥(.key)
openssl pkcs12 -in mycert.pfx -nocerts -nodes -out mycert.key
17.
PEM--SPC
openssl crl2pkcs7 -nocrl -certfile venus.pem -outform DER -out venus.spc
18.
PEM--PVK(openssl 1.x开始支持)
openssl rsa -in mycert.pem -outform PVK -pvk-strong -out mypvk.pvk
19. PEM--PVK (对于openssl 1.x之前的版本,可以下载 pvk转换器 后通过以下命令完成)
pvk -in ca.key -out ca.pvk -nocrypt -topvk