php curl报错:
CURL error: SSL certificate problem: unable to get local issuer certificate, on POST https://api.x.com/API/SELogin.php
在curl里使用了CURLOPT_CAINFO参数指定了根ca证书路径(自签名),然后去调用接口。
在centos7下,调用接口正常,请求其它可信证书的https地址也正常。
在almalinux9下,调用接口正常,请求其它可信证书的https地址报错,即上面的错误。
AI了一下,问题可能出在 OpenSSL 和 cURL 构建差异。
AlmaLinux9的cURL可能使用了更严格的 OpenSSL 验证策略。
如果设置了CURLOPT_CAINFO,它会完全忽略系统默认CA,只使用指定的ca.crt,这在AlmaLinux9下更容易触发验证失败。
# 解决方式,将系统内置的可信根证书与自签名的根证书合并
[root@web cert]# cat /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem >> ca.crt
或者参考 https://www.rootop.org/pages/5443.html
将自签名根证书放到系统中,做为内置可信根证书。
原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/5580.html