对 file_get_contents() SSL 证书验证错误进行故障排除
在 PHP 5.6 中尝试使用 file_get_contents() 访问 REST 服务时,您可能会遇到由于证书更严格,出现错误“SSL 操作失败,代码为 1”
问题描述
用户的 PHP 页面尝试使用 file_get_contents() 从 HTTPS 端点获取数据。但是,它失败并出现以下错误:
Root原因
PHP 5.6 默认引入了更严格的 SSL 验证,需要准确的证书验证。该错误表明客户端无法验证远程服务器的证书。
解决方案
为了解决此问题,关于 5.6 中 OpenSSL 更改的官方 PHP 文档建议禁用证书验证。 注意:此解决方案具有重大安全隐患,仅应在客户端和服务器之间建立信任的受控环境中考虑。
$arrContextOptions = array( "ssl" => array( "verify_peer" => false, "verify_peer_name" => false, ), ); $response = file_get_contents("remote_url", false, stream_context_create($arrContextOptions));
重要说明
禁用 SSL证书验证会降低安全性,并可能使您的应用程序遭受窃听和其他安全漏洞。强烈建议正确配置您的系统以使用受信任的 SSL 证书,而不是诉诸此解决方法。
以上是如何修复 PHP 的 `file_get_contents()` 中的'SSL 操作失败,代码 1”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!