前提:银行服务开放平台java开发,现在需要php版本的SDK demo 和java交互
pfx格式的证书,是商户证书
cer格式的证书,是平台证书
一、pfx格式的证书
接到项目之后,去网上查看了一下资料,发现有好多人说php不支持pfx证书操作,要转为pem格式的证书才能操作,这个说法是错误的,php的openssl扩展中包含了大量与之相关的函数,其中就包括一系列处理pfx证书的函数:比如openssl_pkcs12_read(),openssl_x509_parse()等等。当然你也可以转换为pem格式的文件在进行处理
pfx里面包含2部分内容,一个是商户私钥,一个是商户公钥
二、cer格式的证书
在代码中可能用到的和cer证书有关的php函数openssl_pkey_get_public($publickey),openssl_verify($keyValueStr,$sign,$pkeyid,OPENSSL_ALGO_MD5)等
cer里面包含1部分内容,就是平台公钥
三、这2个证书的意义
pfx证书,一般叫私钥证书(商户证书),在代码的执行流程中它到底起什么作业?回答是:加签
1、商户通过开放平台提供的参数,安装要求组装一个字符串比如:$keyValueStr='key1=value1&key2=value2&key3=value3....&';
2、使用$pfx = get_file_contents('pfx证书路径')读取私钥证书
3、openssl_pkcs12_r