微信公衆平臺 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

相關文章
相關標籤/搜索