所以我在這裏和其他地方發現了很多關於PHP,cURL和SSL的interwebs的帖子。我有一個問題,我沒有看到。cURL上的新自旋不能通過SSL工作
很明顯,如果我設置SSL_VERIFYPEER/HOST來盲目接受我可以得到這個工作,但我想用我的證書來驗證連接。
因此,這裏是一些代碼:
$options = array(
CURLOPT_URL => $oAuthResult['signed_url'],
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HEADER => 0,
CURLOPT_SSL_VERIFYPEER => TRUE,
CURLOPT_SSL_VERIFYHOST => 2,
CURLOPT_CAINFO => getcwd() . '\application\third_party\certs\rootCerr.crt'
);
curl_setopt_array($ch, $options);
try {
$result = curl_exec($ch);
$errCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) != 200) {
throw new Exception('<strong>Error trying to ExecuteWebRequest, returned: '.$errCode .'<br>URL:'.$url . '<br>POST data (if any):</strong><br>');
}
curl_close($ch);
} catch (Exception $e) {
//print the error stuff
}
返回的錯誤代碼是0 ...這意味着一切都OK ......但因爲沒有回來屏幕...我很確定它不工作。
有人嗎?
原來,這是一個域問題。我對此並不是100%確定,但它向我解釋的方式是,由於該網站位於子域,因此我們需要獲得通配證書。一旦我們得到了,一切都奏效了。我可能會解釋這是完全錯誤的,如果我是我稍後更新的,但是一旦我們獲得了正確的SSL設置,這段代碼就完美了。 – JoeCianflone 2011-05-25 20:23:18