评论

微信证书apiclient_cert.p12生成apiclient_key.pem和apiclient_cert.pem

微信证书apiclient_cert.p12生成apiclient_key.pem和apiclient_cert.pem

大多数情况下在微信支付的时候使用的都是apiclient_cert.p12这个证书,很少用到后面两个。微信的APIv3接口发布后改变了签名规则,要用到私钥证书apiclient_key.pem。由于平时基本未使用过私钥证书可能会丢失,证书又不能重新下载只能更换,是件很头疼的事情。其实有apiclient_cert.p12就可以生成另外两个证书。

使用命令:openssl pkcs12 -nodes -clcerts -in apiclient_cert.p12 -out apiclient_key.pem

过程中会让输入密码,默认就是证书对应的商户号

输入正确的密码后,得到输出的密钥证书文件。

文件打开后有两部分-----BEGIN CERTIFICATE-----是公钥证书部分apiclient_cert.pem,-----BEGIN PRIVATE KEY-----是私钥证书部分apiclient_key.pem


至此证书转换完成,经测试是可以使用的。

另外多说一下:官方给的openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem导出的私钥证书是不能用的,会报无效的密钥错误。这个命令使用过程中会输入两次密码,第一次是证书的密码也就是商户号,第二个是自己设置的私钥证书密码。导出后还要用openssl rsa -in apiclient_key.pem -apiclient_key.pem这个命令转换一下格式,这个命令执行的时候会让输入自己设置的私钥证书密码。第二个命令的目的应该是去除密码,因为证书一般都是在服务器使用,不需要密码。然而不知道是我使用的方式问题,还是本身就是错误,这种方式导出的证书并不能用。










最后一次编辑于  2021-05-14  
点赞 1
收藏
评论

1 个评论

  • 柒
    2022-07-19

    一开始那个命令怎么使用啊


    2022-07-19
    赞同
    回复 1
    • Let's think
      Let's think
      2022-08-12
      装个openssl就行了
      2022-08-12
      回复
登录 后发表内容