如何使用Keytool通过pem和key文件生成p12文件
使用Keytool从PEM证书、KEY私钥生成PKCS12文件的实操方案
该操作完全可实现,根据你使用的JDK版本不同,操作方式有区别:
JDK 8及更早版本
该版本的Keytool不支持直接读取PEM格式的私钥,需要先借助openssl完成格式转换后再通过Keytool验证/操作:
- 提前准备好两个文件:PEM格式的证书文件(如果是多证书链场景,需要把根证书、中间证书、用户证书按顺序拼接在同一个pem文件内)、KEY格式的私钥文件,若私钥有加密请提前准备好私钥密码
- 执行openssl命令生成PKCS12文件:
openssl pkcs12 -export -in 你的证书文件.pem -inkey 你的私钥文件.key -out 生成的文件.p12 -name "自定义别名"
执行过程中会要求设置PKCS12文件的存储密码,请妥善保管该密码 - 用Keytool验证生成的PKCS12文件有效性:
keytool -list -keystore 生成的文件.p12 -storetype PKCS12
输入刚才设置的存储密码后,能看到对应别名的证书条目即为生成成功
JDK 9及更高版本
该版本的Keytool已支持直接导入PEM私钥和证书生成PKCS12文件,无需额外工具:
- 直接执行Keytool命令即可:
keytool -importkeypair -alias 自定义别名 -keystore 生成的文件.p12 -storetype PKCS12 -storepass 你设置的PKCS12密码 -keypass 你的私钥密码 -cert 你的证书文件.pem -key 你的私钥文件.key
如果私钥没有加密,可省略-keypass 你的私钥密码参数
注意:生成的PKCS12文件可以直接被Java程序、Nginx等服务加载使用,不需要再转成JKS格式。
内容的提问来源于stack exchange,提问作者Divya
相关产品推荐
相关产品推荐

