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

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

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)。dom

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

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

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

附录

curl_setopt 文档code

相关文章
相关标签/搜索