您的位置:首页 > 移动开发 > 微信开发

微信公众平台 JSSDK 示例代码 CURL SSL配置项错误

2016-05-10 00:00 429 查看
摘要: 微信公众平台 JSSDK 示例代码 CURL SSL配置项错误
curl_setopt(): CURLOPT_SSL_VERIFYHOST no longer accepts the value 1, value 2
微信公众平台 JSSDK 示例代码 CURL SSL配置项错误

curl_setopt(): CURLOPT_SSL_VERIFYHOST no longer accepts the value 1, value 2

jssdk.php


# ......
private function httpGet($url) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
// 为保证第三方服务器与微信服务器之间数据传输的安全性,所有微信接口采用https方式调用,必须使用下面2行代码打开ssl安全校验。
// 如果在部署过程中代码在此处验证失败,请到 http://curl.haxx.se/ca/cacert.pem 下载新的证书判别文件。
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);
curl_setopt($curl, CURLOPT_URL, $url);

$res = curl_exec($curl);
curl_close($curl);

return $res;
}
# ......

修改


curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);



curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);


CURLOPT_SSL_VERIFYHOST

设置为 1 是检查服务器SSL证书中是否存在一个公用名(common name)。

译者注:公用名(Common Name)一般来讲就是填写你将要申请SSL证书的域名 (domain)或子域名(sub domain)。


设置成 2,会检查公用名是否存在,并且是否与提供的主机名匹配。
在生产环境中,这个值应该是 2(默认值)。

值 1 的支持在 cURL 7.28.1 中被删除了。

附录

curl_setopt 文档
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息