tiger-sms ChatGPT 账号/ChatGPT 代注册 OpenAI API 代充值

PHP file_get_contents() 报错 SSL operation failed with code 1. OpenSSL Error 的解决方法

OpenAI API key

老王今天发现部署在服务器上的一个 PHP 脚本不工作了,运行了下发现是 file_get_contents() 函数报错:SSL operation failed with code 1. OpenSSL Error,本文记录下解决方法。

一、问题描述

写了个测试脚本,用到 file_get_contents() 的代码如下:

$response = file_get_contents("https://exeample.com")

不工作的原因是 file_get_contents() 函数报错,错误编号是 SSL operation failed with code 1. OpenSSL Error,如下:

PHP Warning:  file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in test.php on line 40
PHP Warning:  file_get_contents(): Failed to enable crypto in test.php on line 40
PHP Warning:  file_get_contents(https://exeample.com): failed to open stream: operation failed in test.php on line 40

截图如下:

PHP file_get_contents() 报错 SSL operation failed with code 1. OpenSSL Error 的解决方法

二、问题原因与解决方法

老王后来在网上找到了这个问题的原因:在 PHP 5.6 中对 OpenSSL 进行了更改,有一个设置为 false 的参数:”verify_peer_name”=>false,详见官方文档:http://php.net/manual/en/migration56.openssl.php

因此,这个问题的解决方法就是增加这个 false 的参数,上面的代码变成了这样:

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

$response = file_get_contents("https://exeample.com", false, stream_context_create($arrContextOptions));

之后再跑就正常了。

赞(0)
关注我们
未经允许不得转载:老王博客 » PHP file_get_contents() 报错 SSL operation failed with code 1. OpenSSL Error 的解决方法