今天对接了一个第三方的接口,安全性要求比较高,需要 HTTPS 双向认证,对方只提供了 JAVA pkcs 证书的生成方式,没有提供其它语言的 SDK。

这就很难受,还是把这个证书转成 openssl 的比较通用吧。

转换命令:

openssl pkcs12 -in xxx.jks -out ca.pem -cacerts -nokeys
openssl pkcs12 -in xxx.jks -out client.pem -clcerts -nokeys 
openssl pkcs12 -in xxx.jks -out key.pem -nocerts

其中 xxx.jks 即为 Java SDK 里的 keytool 工具生成的密钥,这里注意一下 Java SDK 的版本,如果生成的密钥不是 pkcs12 这种格式的,可以通过下面这条命令转一下:

keytool -importkeystore -srckeystore xxx.jks -destkeystore xxxNewPKCS12.jks -deststoretype pkcs12

因为 pkcs12 这种格式的密钥对于 openssl 来说,比较好处理。

这里记录一下。

Openssl 官网

打赏不准超过你工资的一半!!!