之前写过一篇文章:ASP微信支付类,文章中提到安装证书的问题。 增加了 一台服务器部署 多个 微信支付站点的方法,请翻阅到文章底部。没有做详细的说明(微信支付/服务号 怎么配置?),现在将详细安装的方法整理了一遍,具体步骤如下:
1、首先需要安装证书
到微软官方下载winhttpcertcfg.exe
下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=19801
使用说明:https://msdn.microsoft.com/en-us/library/aa384088.aspx#_using
选择一个位置安装即可,为了方便输入,建议安装到:C:\cert_tools\
2、安装证书
安装第一步的工具后,执行以下命令,即可安装证书成功。
假如 证书工具安装在C:\cert_tools\,证书放在 D:\Project\WechatASP
2.1、导入证书
C:\cert_tools\winhttpcertcfg -g -i "D:\Project\WechatASP\apiclient_cert.p12" -c LOCAL_MACHINE\My -a "Network Service" -p 微信商户ID
如果成功会提示:
Microsoft (R) WinHTTP Certificate Configuration Tool Copyright (C) Microsoft Corporation 2001. Imported certificate: SN=12xxxxxx CN=***有限公司 OU=MMPay O=Tencent L=Shenzhen S=Guangdong C=CN
2.2、设置 Network Serivce 拥有证书使用权限
::下面的命令根据 申请日志选择,只需要执行一个就可以 ::新商户执行 C:\cert_tools\winhttpcertcfg -g -c LOCAL_MACHINE\My -s 微信商户ID -a "Network Service" ::老商户执行 C:\cert_tools\winhttpcertcfg -g -c LOCAL_MACHINE\My -s "MMPay" -a "Network Service"
如果成功会提示:
Microsoft (R) WinHTTP Certificate Configuration Tool Copyright (C) Microsoft Corporation 2001. Matching certificate: SN=12xxxxxx CN=***有限公司 OU=MMPay O=Tencent L=Shenzhen S=Guangdong C=CN Private key access has already been granted for account: NT AUTHORITY\NETWORK SERVICE
2.3、设置 Everyone 拥有证书使用权限
::下面的命令根据 申请日志选择,只需要执行一个就可以 ::新商户执行 C:\cert_tools\winhttpcertcfg -g -c LOCAL_MACHINE\My -s 微信商户ID -a "EveryOne" ::老商户执行 C:\cert_tools\winhttpcertcfg -g -c LOCAL_MACHINE\My -s "MMPay" -a "EveryOne"
如果成功会提示:
Microsoft (R) WinHTTP Certificate Configuration Tool Copyright (C) Microsoft Corporation 2001. Matching certificate: SN=12xxxxxx CN=***有限公司 OU=MMPay O=Tencent L=Shenzhen S=Guangdong C=CN Granting private key access for account: \Everyone
3、一台服务器系统 安装多个微信支付系统 的方法
请升级程序到最新的版本:https://gitee.com/mqycn/WechatASP,修改 order/payconfig.asp 中的 CertName 属性的值 为
2.3、设置 Everyone 拥有证书使用权限 部分中的 SN 的值(12xxxxxx),以上面的证书为例:
pay.CertName = "12xxxxxx" '如果本服务器只有一个站点使用微信支付,无须修改。部署多套请参考:http://www.miaoqiyuan.cn/p/winhttpcertcfg-mmpay
如果是2018-11-22之前的版本,请参考教程:https://gitee.com/mqycn/WechatASP/issues/IOXBW
如果 Win2003 没有开启自动更新,会因为win2003及其早期版本不支持SHA2,导致HTTPS交互失败,需要打上968730的补丁后才可以使用。
原因地址:https://support.microsoft.com/zh-cn/help/968730/windows-server-2003-and-windows-xp-clients-cannot-obtain-certificates
补丁地址:https://docs.microsoft.com/en-us/security-updates/SecurityBulletins/2013/ms13-095
为什么我在cmd 里面导入证书怎么提示,Unable to open PFX file 啊
需要导入的是 apiclient_cert.p12,不是 PFX 格式的
请问如果有二个网站需要安装证书,怎么办,会不会冲突呢,因为证书名都是MMpay,如何解决,能否回复一下。
因为重名,目前一台服务器只能部署一个
现在增加了:3、一台服务器系统 安装多个微信支付系统 的方法
请问把路径统一修改可以用吗,现将整个目录放到某站点的子目录中使用。二微码扫码后没有返回值,LOG日志文件也没有更新,{“status”:false} ,问下是什么情况,搞了两天了还没有弄好
可以部署多套,但是如何安装多个证书呢?!证书名是一样的MMPAY。
在前 日志路径写死了,如果 不安装到默认路径 会收不到通知,现在 gitee中 最新的代码已经修复此bug
证书名,可以直接用 商户ID,请见文章底部:3、一台服务器系统 安装多个微信支付系统 的方法
Pingback引用通告: ASP微信支付 使用说明 | 启源的部落格