首页 >后端开发 >php教程 >为什么我的 `file_get_contents()` 调用失败并显示'SSL 操作失败,代码为 1”,如何修复它?

为什么我的 `file_get_contents()` 调用失败并显示'SSL 操作失败,代码为 1”,如何修复它?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-19 00:24:10430浏览

Why is my `file_get_contents()` call failing with

SSL 操作失败,代码 1:了解并解决

使用 file_get_contents() 访问安全网站时,出现“SSL 操作”等错误失败,代码 1”可能会出现。此错误表示证书验证或 OpenSSL 配置存在问题。

在此特定场景中,问题源于 PHP 5.6 增强的 SSL 安全措施。要解决此问题,需要通过在请求的上下文选项中将 verify_peer 和 verify_peer_name 设置为 false 来禁用证书验证:

$arrContextOptions = array(
    "ssl" => array(
        "verify_peer" => false,
        "verify_peer_name" => false,
    ),
);

$response = file_get_contents($url, false, stream_context_create($arrContextOptions));

警告: 需要注意的是,禁用证书验证可以具有严重的安全隐患,因为它开启了中间人 (MITM) 攻击的可能性。仅当您完全了解潜在风险并且没有其他可行的选择时才使用此解决方案。

在所述情况下,禁用证书验证解决了问题,使请求成功。但是,始终建议调查 SSL 失败的根本原因并正确解决它们以确保安全通信。

以上是为什么我的 `file_get_contents()` 调用失败并显示'SSL 操作失败,代码为 1”,如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn