繁体   English   中英

cURL SSL证书问题:自签名证书Laravel 9

[英]cURL SSL certificate problem: self signed certificate Laravel 9

我有一篇文章发布仪表板网站,我从网站发送 cURL 请求,我想在仪表板上显示文章并返回数据,这是我正在使用的代码:

public function articleData(Request $request, $text){
        $host1 = request()->getHost();
        $host = str_replace('www.', '', $host1);
        $curl = curl_init();
        curl_setopt_array($curl, array(
            CURLOPT_URL => "https://somedomain.com/getData?host=$host&artURL=".strtolower($text),
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => '',
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 0,
            CURLOPT_FOLLOWLOCATION => true,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => 'GET',
        ));
        $article = curl_exec($curl);
        curl_close($curl);
        $articles = json_decode($article, true);
        return view('Pages.articleTemp')->with('articles', $articles[0]);
 
}

我面临的问题是,当我将它上传到实时服务器时,它停止返回数据,这使得网站抛出错误。

我试过用这个

print curl_error($curl);

它返回此错误:SSL 证书问题:自签名证书

我尝试在 cURL 数组中使用这些:

CURLOPT_SSL_VERIFYHOST
CURLOPT_SSL_VERIFYPEER

没有任何效果

它在本地主机上运行良好,这仅在实时服务器上。

这些选项禁用 SSL

CURLOPT_SSL_VERIFYHOST
CURLOPT_SSL_VERIFYPEER

您可能需要使用URLOPT_CAINFO选项,或者可以使用CURLOPT_CAPATH选项指定证书目录

这没什么大不了的。 这更像是个人的烦恼。
虽然 GET 是CURLOPT_CUSTOMREQUEST的有效参数
它会起作用,但 PHP 手册说:

执行 HTTP 请求时使用的自定义请求方法,而不是“GET”或“HEAD”。 这对于执行“删除”或其他更模糊的 HTTP 请求很有用。

使用CURLOPT_HTTPGET=>true,

如果 URL 使用违反RFC 3986 - 统一资源标识符 (URI) 中定义的通用 URI 语法的任何字符,您可能需要使用 urlencode():通用语法
一个例子

urlencode($text);

我看到$request已传递给您的 function
我没有看到任何CURLOPT_HTTPHEADER
我看到你定义的 $host 应该在 HTTP 请求 Header

$request = array();
$request[] = "Host: $host";
CURLOPT_HTTPHEADER=>$request,

cURL error 60: SSL certificate problem: unable to get local issuer certificate error occurs when we try to call the API with the secure https:// protocol in the request URL.

为什么会出现 cURL 错误 60 SSL 证书?

您的 API 调用尝试仅使用 http:// 协议运行请求 URL。 您再也看不到错误了,因为安全的 API 调用需要 SSL 证书或 https:// 协议。

阅读更多: 如何修复 cURL 错误 60 SSL 证书问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM