使用file_get_contents() 排查SSL 問題
在PHP 5.6 中,對OpenSSL 處理進行了更改,這些更改偶爾會導致「SSL ”等錯誤操作失敗,代碼為1。 」根據使用者報告,在嘗試使用file_get_contents() 存取REST 服務時發生了這樣一個實例。
問題描述:
使用者在存取時遇到錯誤嘗試透過file_get_contents() 從REST服務擷取資料:
$response = file_get_contents("https://maps.co.weber.ut.us/arcgis/rest/services/SDE_composite_locator/GeocodeServer/findAddressCandidates?Street=&SingleLine=3042+N+1050+W&outFields=*&outSR=102100&searchExtent=&f=json");
錯誤訊息顯示:
Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
解決方案:
為了解決此問題,使用者執行了以下問題步驟:
$arrContextOptions=array( "ssl"=>array( "verify_peer"=>false, "verify_peer_name"=>false, ), ); $response = file_get_contents("https://maps.co.weber.ut.us/arcgis/rest/services/SDE_composite_locator/GeocodeServer/findAddressCandidates?Street=&SingleLine=3042+N+1050+W&outFields=*&outSR=102100&searchExtent=&f=json", false, stream_context_create($arrContextOptions));
用戶承認禁用SSL 驗證的安全隱患。其他可行的設定選項時才應執行此操作。
以上是在 PHP 中使用 `file_get_contents()` 時如何修正「SSL 操作失敗,程式碼 1」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!