file_get_contents(): SSL operation failed with code 1.
错误场景:
出现如下错误一般是服务器未正确配置好https证书,ssl验证不通过导致的。
Warning : file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:
error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed in XXX.php
解决方法一:
下载https证书到服务器,下载地址:http://curl.haxx.se/ca/cacert.pem
下载完成后,在php.ini 进行配置。找到php.ini,如博主使用的是phpstudy,php.ini位于C:phpstudy_proExtensionsphpphp7.3.4nts目录下,打开文件找到1925行,加入如下代码:
openssl.cafile = “C:/phpstudy_pro/Extensions/Nginx1.15.11/conf/ssl/cacert.pem”
注意,以上cacert.pem必须是你本地存储的路径。然后重启 php 即可。
解决方法二:
使用cURL 函数处理 https 的参数,获取文件内容:
<?php
function getSSLPage($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSLVERSION,3);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
var_dump(getSSLPage("https://xxx.xxx.xxx"));
解决方法三:
以上错误还有可能是SSL证书不一致造成的,可以使file_get_contents()函数跳过https验证:
$arrContextOptions = [
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
]];
$response = file_get_contents(
$voucherImageBase64,false,stream_context_create($arrContextOptions));
file_put_contents($voucherImage, $response);
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。