77范文网 - 专业文章范例文档资料分享平台

【微信支付】证书文件使用说明

来源:网络收集 时间:2018-11-26 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

HTTPS双向认证使用说明

现在邮件发出的文件有四个,分别是apiclient_cert.p12、apiclient_cert.pem、apiclient_key.pem、rootca.pem。

apiclient_cert.p12

包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份,请妥善保管不要泄漏和被他人复制

部分安全性要求较高的API需要使用该证书来确认您的调用身份

windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000)

apiclient_cert.pem

从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制

部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供;您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem

apiclient_key.pem

从apiclient_cert.p12中导出密钥部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制

部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供;您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem

rootca.pem

微信支付api服务器上也部署了证明微信支付身份的服务器证书,您在使用api进行调用时也需要验证所调用服务器及域名的真实性,该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性

某些环境和工具已经内置了若干权威机构的根证书,无需引用该证书也可以正常进行验证,这里提供给您在未内置所必须根证书的环境中载入使用

https双向认证上述文件使用说明: 问:什么是双向认证?

答:双向认真顾名思义,就是指服务器与客户端进行通信的时候,两者相互进行签名校验,以确保双方身份,映射到上述四个文件,既服务器验证客户端的时候通过客户端证书和签名(既:apiclient_cert.p12 或者 apiclient_cert.pem和apiclient_key.pem),客户端验证服务器通过ca的根证书进行(rootca.pem),根证书有些操作系统上或者开发环境中已经包含,此时不需要导入,但如果找不到跟证书时则需要使用rootca.pem。

1、如果基于curl调用https访问接口,(如:c++、php等语言使用libcurl访问)

需要使用到上述的piclient_cert.pem、apiclient_key.pem文件,当找不到ca根证书的时候还

需要rootca.pem文件。 使用如下:(php,c++类似)

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false)

curl_setopt($ch,CURLOPT_SSLCERT,getcwd().'/apiclient_cert.pem); curl_setopt($ch,CURLOPT_SSLKEY,getcwd().'/apiclient_key.pem'); curl_setopt($ch,CURLOPT_CAINFO,'rootca.pem');

2、JAVA使用证书文件

JAVA只需要使用apiclient_cert.p12即可,如果使用JAVA语言进行开发的可以忽略其余三个pem格式的文件。 使用如下:

//指定读取证书格式为PKCS12

KeyStore keyStore = KeyStore.getInstance(\//读取本机存放的PKCS12证书文件

FileInputStream instream = new FileInputStream(new File(\try {

//指定PKCS12的密码(商户ID)

keyStore.load(instream, \} finally {

instream.close(); }

SSLContext sslcontext = SSLContexts.custom()

.loadKeyMaterial(keyStore, \//指定TLS版本

SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory( sslcontext,new String[] { \

SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER); //设置httpclient的SSLSocketFactory

CloseableHttpClient httpclient = HttpClients.custom() .setSSLSocketFactory(sslsf) .build();

3、C#使用证书

C#使用证书默认使用操作系统以导入的证书,即在操作系统上按装apiclient_cert.p12即可。C#也可以忽略其他三个pem文件。 使用如下:

string cert = @\string password = \

ServicePointManager.ServerCertificateValidationCallback=new RemoteCertificateValidationCallback(CheckValidationResult); X509Certificate cer = new X509Certificate(cert, password);

HttpWebRequest webrequest = (HttpWebRequest)HttpWebRequest.Create(url); webrequest.ClientCertificates.Add(cer);

webrequest.Method = \

HttpWebResponse webreponse = (HttpWebResponse)webrequest.GetResponse(); Stream stream = webreponse.GetResponseStream();

/*CheckValidationResult的定义*/

private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) {

if (errors == SslPolicyErrors.None) return true; return false; }

注意:C#有一点需要注意,除了在代码中使用apiclient_cert.p12之外还需要将该证书导

入操作系统才能使用,1、代码中使用、;2、导入操作系统,二者缺一不可。.NET版本需要大于2.0

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库【微信支付】证书文件使用说明在线全文阅读。

【微信支付】证书文件使用说明.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/310765.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: