微信支付关于你只有p12文件时, 我们却需要pem文件怎么办?

先看官方文档:

附件中的三份文件(证书pkcs12格式、证书pem格式、证书密钥pem格式),为接口中强制要求时需携带的证书文件。

证书属于敏感信息,请妥善保管不要泄露和被他人复制。

不同开发语言下的证书格式不同,以下为说明指引:

    证书pkcs12格式(apiclient_cert.p12)
        包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份
        部分安全性要求较高的API需要使用该证书来确认您的调用身份
        windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户号(如:1900006031)
        
    证书pem格式(apiclient_cert.pem)
        从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制
        部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供
        您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem
        
    证书密钥pem格式(apiclient_key.pem)
        从apiclient_cert.p12中导出密钥部分的文件,为pem格式
        部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供
        您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem
  1. 在此可以看出根据p12文件我们可以使用openssl 进行pem解析.

解析 apiclient_cert.pem:

openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem

解析 apiclient_key.pem:

openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem

注意点:

1. 解析key.pem 时必须需要输入三次密码校验,不然不可使用(默认为你微信支付商户号)

2. 解析完成key.pem 后 需要进行RSA算法进行再次加密后才能使用.

对解析后的key.pem进行RSA算法:

openssl rsa -in apiclient_key.pem -out apiclient_key.pem

实话实话微信是真坑…


版权声明:本文为Return_Li原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。