php file_get_contents(): Peer certificate CN= 报错

180it 2024-12-14 PM 79℃ 0条

file_get_contents() 是 PHP 中用于读取文件内容的函数,它也可以用于读取 URL 的内容。然而,当你尝试读取 HTTPS URL 时,可能会遇到 SSL 证书验证的问题,例如 "Peer certificate CN=" 错误。

要解决这个问题,可以禁用 SSL 证书验证(仅在开发环境中使用,生产环境中不推荐),或者正确配置 SSL 证书。以下是禁用 SSL 证书验证的示例代码:

<?php
$url = "https://example.com";

$options = [
    "ssl" => [
        "verify_peer" => false,
        "verify_peer_name" => false,
    ],
];

$context = stream_context_create($options);
$content = file_get_contents($url, false, $context);

if ($content === FALSE) {
    echo "无法读取 URL 内容";
} else {
    echo $content;
}
?>

说明:

  1. $options:设置 SSL 选项,禁用 verify_peerverify_peer_name
  2. stream_context_create:创建一个流上下文,包含上述 SSL 选项。
  3. file_get_contents:使用创建的流上下文读取 URL 内容。

使用步骤:

  1. 将上述代码保存到一个 PHP 文件中,例如 fetch_url.php
  2. 在浏览器中访问该 PHP 文件,或者在命令行中运行 php fetch_url.php

请注意,禁用 SSL 证书验证会降低安全性,因此仅在开发环境中使用。在生产环境中,建议正确配置 SSL 证书,确保服务器的证书是可信的。

支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!

标签: none

php file_get_contents(): Peer certificate CN= 报错