file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in
找了很多解决方法
方法1:换本机ssl证书,改php.ini配置,无效
方法2:修改本地ssl证书文件夹目录权限 chmod 777 certs,无效
方法3:每次请求file_get_contens时初始化stream_context_set_default,有效,代码如下
$context_options = array(
'http' =>
[
'timeout' => 8
],
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
]
);
$context = stream_context_create($context_options);
$data = file_get_contents($api_url, FALSE, $context);
方法4::
$defaultOpts = [
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
]
];
stream_context_set_default($defaultOpts);
在公共文件中加入此代码,用于修改初始化file_get_contents和curl时使用的stream_context,这样除非你自定义stream_context,否则全局通用,跳过ssl证书验证
推荐方法4