使用 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 验证的安全隐患。仅当用户完全了解风险并且没有其他可行的配置选项时才应执行此操作。为了获得最佳安全性,默认启用 SSL 证书验证。
以上是在 PHP 中使用 `file_get_contents()` 时如何修复'SSL 操作失败,代码 1”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!