宝塔面板,getimagesize(): 报错提示SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL
2021-10-06 admin php 1161
以前使用getimagesize获取图片参数一直正常,今天突然报错了:
getimagesize(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL
经查,是php的证书过期了。这种报错也在使用例如file_get_contents这样的函数读取https的资源的时候会出现。首先确认加载了openssl模块 并且allow_url_fopen是打开状态,这种时候有两种方案:
第一种 简单粗暴的跳过ssl认证
在getimagesize前面加@,或者:
$arrContextOptions=array(
"ssl"=>array(
"verify_peer"=>false,
"verify_peer_name"=>false,
),
);
使用时:
$response = file_get_contents("https://maps.com", false, stream_context_create($arrContextOptions));
但这种方案不推荐,最好用第二种:
1.前往ca证书下载地址下载证书:https://curl.se/docs/caextract.html
2. 编辑/etc/pki/tls/certs/ca-bundle.crt,将刚才下载的证书内容复制过来,粘贴到该文件替换。
如果是windows系统,先下载证书:https://curl.haxx.se/ca/cacert.pem
上传到宝塔php目录:d:/BtSoft/php/81/extras/ssl
然后宝塔管理软件中找到php,编辑配置,修改curl.cainfo:
opcache.huge_code_pages=0
opcache.validate_permission=0
opcache.validate_root=0
[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
curl.cainfo = "d:/BtSoft/php/81/extras/ssl/cacert.pem"
[openssl]