我想用cURL發佈到剛剛開始使用SNI的API(以便他們可以在1個IP地址上託管多個ssl證書)。使用cURL與SNI(服務器名稱指示)
由於此舉遷移至SNI,我的cURL停止工作。他們解釋說,這是因爲cURL獲取* .domain-a.com而不是* .domain-b.com,所以SSL失敗。
這似乎是cURL中的錯誤,因爲當從瀏覽器訪問API URL時沒有錯誤。
使用此代碼,它的工作:
exec('curl -k -d "parameters=here", https://urlhere.com/', $output);
print_r($output);
但是,使用-k是不好的,因爲它不驗證SSL證書。
使用此代碼,不工作:
exec('curl -d "parameters=here", https://urlhere.com/', $output);
print_r($output);
所以我的問題是,我該如何使用捲曲符合SNI,仍然驗證SSL(沒有使用-k)。 PHP中是否有另一個設置或我可以設置的捲曲選項來解決此問題?
如果要使用libcurl,請將'CURLOPT_SSLVERSION'設置爲'1'(相當於命令行中的'-1')。 – Bruno
對我而言,它安裝的是cURL的舊版本。更新它修復了它。 – Justin
順便說一句,關於SO的一個很好的答案很好的例子。謝謝 –