把pem格式的证书转换为PKCS12格式
pem证书
一般是文本格式,可保存证书,可保存私钥, 以 -----BEGIN… 开头,以 -----END… 结尾,中间的内容是 BASE64 编码。有时也把pem 格式的私钥的后缀改为 .key 以区别证书与私钥。nginx之类的web服务器,需要这种格式的证书
jks证书
二进制格式,同时包含证书和私钥,一般有密码保护。是JAVA 的专属格式(Java Key Storage)
pkcs12证书
定义了包含私钥与公钥证书(public key certificate)的文件格式,行业标准,一般以:p12,pfx 结尾
转换 pem证书为 pkcs12证书
Java不支持直接使用pem类型的证书,必须先转换为 jks或者pkcs12(推荐)
安装openssl
略,太简单
转换命令
语法格式:
openssl pkcs12 -export -in [公钥] -inkey [私钥] -out [pkcs12证书文件]
openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out springboot.p12
执行后会通过控制台交互,输入2次keystore的密码(第二次为确认密码无误)。执行完毕后,会在当前目录下生成指定的两个文件
从 pkcs12证书 中提取公钥和私钥文件
也就是吧 pkcs12 转换为 pem
提取证书文件
执行过程需要通过控制台输入keystore的密码
openssl pkcs12 -in springboot.p12 -out springboot.pem -nokeys -clcerts
提取私钥文件
openssl pkcs12 -in springboot.p12 -out springboot.key -nocerts -nodes
-in 参数指定pkcs12 证书文件
-out 参数指定输出的pem文件