怎么验证服务器上是否安装了DigiCert根CA证书

2018-03-16, 发表于【行业常识】

相关文档:怎么在服务器上部署DigiCert的根CA证书

为了确保微信支付更换服务证书后,不影响商户的正常交易。下面提供了两种方式供商户提前验证客户端是否支持了DigiCert的证书。

如你的验证结果为无影响,可忽略安装证书部分的内容。

方式一:调用微信支付沙箱环境的API接口验证

微信支付已经将新的服务器证书部署到了沙箱域名(apitest.mch.weixin.qq.com), 由于服务器证书是支持多域名的,API域名(api.mch.weixin.qq.com)与沙箱域名(apitest.mch.weixin.qq.com)使用的是同一张证书。如果使用沙箱环境的接口能调用成功,通常表明客户端支持微信支付新的服务器证书。

API接口调用说明:

请求Url https://apitest.mch.weixin.qq.com/sandboxnew/pay/getsignkey
是否需要证书
请求方式 POST
请求格式 XML

请求参数:

字段名 字段 必填 示例值 类型 说明
商户号 mch_id 1305638280 String(32) 微信支付分配的微信商户号
随机字符串 nonce_str 5K8264ILTKCH16CQ2502SI8ZNMTM67VS String(32) 随机字符串,不长于32位
签名 sign 5K8264ILTKCH16CQ2502SI8ZNMTM67VS String(32) 签名结果,详见签名生成算法

返回参数:

字段名 字段 必填 示例值 类型 说明
返回状态码 return_code SUCCESS String(16) SUCCESS/FAIL 
返回信息 return_msg 签名失败 String(128) 返回信息,如非空,为错误原因 ,签名失败 ,参数格式校验错误

以下字段在return_code 为SUCCESS的时有返回。

字段名 字段 必填 示例值 类型 说明
商户号 mch_id 1305638280 String(32) 微信支付分配的微信商户号
沙箱密钥 sandbox_signkey 013467007045764 String(32) 返回的沙箱密钥

当返回结果return_code为“SUCCESS”,说明当前客服端已支持DigCert证书,反之则需要根据安装证书部分的指引,升级证书。

方式二:绑定HOST,请求已部署新证书的微信支付API服务器

商户可以根据不同的网络运营商, 为域名 api.mch.weixin.qq.com 配置以下HOST:

网络运营商

绑定IP

端口

电信

113.96.240.139

443

联通

157.255.180.139

443

其它(移动, 长城等)

121.51.30.139

443

HOST环境可以访问的接口与正式环境完全一致,且真实生效, 商户验证前, 务必评估对业务的影响。 如果未配置以上HOST的话, 在2018年5月31日前,访问api.mch.weixin.qq.com时, 服务器依然返回老的GeoTrust证书。

如果可以正常访问api.mch.weixin.qq.com,说明客户端支持了DigCert证书,反之则需要根据安装证书部分的指引,升级证书。

注意事项:

◆ 建议商户在使用方式A验证后, 再使用方式B验证, 以确保交易不受影响

◆ 建议不要忽略服务器证书校验的错误, 避免受到中间人攻击

◆ 请确保验证环境和正式环境一致,需要使用相同的操作系统、开发语言、执行环境、SSL\TLS库等