首页 > 其他分享 >cURL error 60: SSL certificate problem: unable to get local issuer certifica 解决

cURL error 60: SSL certificate problem: unable to get local issuer certifica 解决

时间:2024-02-28 09:55:17浏览次数:23  
标签:certificate get certifica openssl SSL cert https PHP local

cURL error 60: SSL certificate problem: unable to get local issuer certifica 解决

 

无法获取本地颁发者证书

 

Windows版本
1.到 https://curl.haxx.se/ca/cacert.pem 下载证书文件 cacert.pem,将其保存到 PHP 安装路径下。

2.编辑 php.ini 文件,删除 curl.cainfo 配置项前的分号注释符(;),值设置为保存的证书文件 cacert.pem 的绝对路径。

3.重启依赖 PHP 的服务。

 

 

 

 

 

 

 

linux版本解决方案
cURL error 60: SSL certificate problem: unable to get local issuer certifica 解决
从 https://curl.haxx.se/docs/caextract.html 上下载cacert.pem

打开php.ini 搜索curl.cainfo 与 openssl.cafile,将其配置成你自己cacert.pem文件的路径

curl.cainfo=" 路径 "

openssl.cafile=“路径”

例如:

 

 

 

 

 

 

Laravel 使用GuzzleHttp请求第三方https接口报错

错误提示:
cURL error 60: Peer’s certificate issuer has been marked as not trusted by the user. (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

解决方法

$client = new Client(['verify' => false]);

解释:因为配置https协议,需要购买SSL证书,所以你需要将verify的值改为false,等后期你配置了https协议,在讲verify的值改为true。

 

获取 headers
(PHP 4,PHP 5,PHP 7,PHP 8)

getallheaders —提取所有HTTP请求标头

foreach (getallheaders() as $name => KaTeX parse error: Expected '}', got 'EOF' at end of input: …e) { echo "name: $value\n";}

复制代码
array:9 [
  "Connection" => "keep-alive"
  "Accept-Encoding" => "gzip, deflate, br"
  "Host" => "textlaravel.cc"
  "Postman-Token" => "b40c141e-645d-495f-8d71-f82874a642e7"
  "Accept" => "*/*"
  "User-Agent" => "PostmanRuntime/7.26.8"
  "Jwt" => "bearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC90ZXh0bGFyYXZlbC5jY1wvYXBpXC9sb2dpbiIsImlhdCI6MTYxMjY3NTE0OCwiZXhwIjoxNjEyNjc4NzQ4LCJuYmYiOjE2MTI2NzUxNDgsImp0aSI6ImR5b0ZOalpzUkZVcGRqOFEiLCJzdWIiOjEsInBydiI6Ijg3ZTBhZjFlZjlmZDE1ODEyZmRlYzk3MTUzYTE0ZTBiMDQ3NTQ2YWEifQ.X2LIiNxb9fltrx3AMfajIAOrBKwhhEedePxl5kjOQw0"
  "Content-Length" => ""
  "Content-Type" => ""
]
复制代码

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

openssl_get_cert_locations — 检索可用的证书位置
openssl_get_cert_locations() 返回一个数组,其中包含要搜索SSL证书的可用证书位置的信息。

复制代码
array:8 [
  "default_cert_file" => "/usr/local/openssl/cert.pem",
  "default_cert_file_env" => "SSL_CERT_FILE",
  "default_cert_dir" => "/usr/local/openssl/certs",
  "default_cert_dir_env" => "SSL_CERT_DIR",
  "default_private_dir" => "/usr/local/openssl/private",
  "default_default_cert_area" => "/usr/local/openssl",
  "ini_cafile" => "/www/wwwroot/ext/ca-bundle.crt",
  "ini_capath" => ""
]
复制代码

下面是guzzle官方文档
https://guzzle-cn.readthedocs.io/zh_CN/latest/quickstart.html



windows 清晰版本
解决:cURL error 60: SSL certificate problem: unable to get local issuer certificate 问题

问题原因:
此问题的出现是由于没有配置信任的服务器HTTPS验证。
默认,cURL被设为不信任任何CAs,就是说,它不信任任何服务器验证。

1、通过下面的git地址下载验证文件
https://github.com/bagder/ca-bundle/tree/e9175fec5d0c4d42de24ed6d84a06d504d5e5a09

2、把文件放到下面目录中,也就是 php.ini 同级目录的 ./extras/ssl下

 

 3、在环境中找到, php.ini 文件

 

 4、编辑 php.ini 文件,加入下面代码(自己的路径记得修改)

[curl]
curl.cainfo="D:/phpstudy/Extensions/php/php7.3.4nts/extras/ssl/ca-bundle.crt"

 

最后,清除缓存刷新即可,重启PHP。

 

 

 

转 : https://blog.csdn.net/weiguang102/article/details/109476496

标签:certificate,get,certifica,openssl,SSL,cert,https,PHP,local
From: https://www.cnblogs.com/yyyyyyyyx/p/18039068

相关文章

  • RK3588 usb otg口实现UVC gadget,作为usb camara向windows 传输图像
    1、打开内核相关配置CONFIG_VIDEO_V4L2_SUBDEV_API=yCONFIG_MEDIA_USB_SUPPORT=yCONFIG_MEDIA_CONTROLLER=yCONFIG_USB_VIDEO_CLASS=yCONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y CONFIG_V4L_PLATFORM_DRIVERS=yCONFIG_MEDIA_CAMERA_SUPPORT=y......
  • npm报错:request to https://registry.npm.taobao.org failed, reason certificate has
    一、报错问题:提示淘宝镜像过期二、错误提示已经告诉原因是淘宝镜像过期了!其实,早在2021年,淘宝就发文称,npm淘宝镜像已经从registry.npm.taobao.org切换到了registry.npmmirror.com。旧域名也将于2022年5月31日停止服务(不过,直到今天HTTPS证书到期才真正不能用了)三......
  • npm ERR! request to https://registry.npm.taobao.org/vue-router failed, reason: c
    npminstall报错了!看提示是证书到期,究其原因是淘宝镜像的地址换了。旧:https://registry.npm.taobao.org/新:https://registry.npmmirror.com/#清除缓存npmcacheclean--force#验证缓存是否清除干净npmverifycache#更改淘宝镜像npmconfigsetregistryhttps://r......
  • Qt Virtual Keyboard C++集成与实现(QWidget)
    一.设置1.配置所需语言1).通过QtCreator配置打开Qt工程文件,点开左侧 Projects->Build->BuildSteps->qmake->Additionalarguments在 Additionalarguments 增加配置参数:CONFIG+="lang-ar_ARlang-da_DKlang-de_DElang-en_GBlang-es_ESlang-fa_FAlang-fi_FIlang-fr......
  • 前端get请求传递数组型参数时的处理方式
    场景后端get接口设计接受数组型查询参数时,只接受重复的query格式,如arr=[1,2,3],那么在query里的参数格式需要是a=1&a=2&a=3前端get请求直接传数组会默认处理为a[]=1&a[]=2&a[]=3,后端无法识别(恼),传json字符串和join拼接后端都不同意如果直接在url中做参数拼接,实在是又蠢又费力......
  • Python函数每日一讲29 - 一文让你彻底掌握Python中的getattr函数
    引言在Python中,getattr()函数是一种强大的工具,它允许我们在运行时动态地访问对象的属性和方法。本文将介绍getattr()函数的基本语法、常见用法和高级技巧,帮助大家更好地理解和应用这一函数。语句概览getattr()函数的语法如下:getattr(object,name[,default])其中:ob......
  • 将自己开发的类库上传到 NuGet 上
    阅读前可先参阅:BaGet:搭建Nuget私服:https://www.cnblogs.com/easy5weikai/p/16245232.html要将自己开发的类库上传到NuGet上,你可以按照以下步骤进行操作:创建NuGet.org账户:首先,你需要创建一个NuGet.org账户。访问NuGet.org网站并按照指示创建一个账户。打包类库:......
  • Python打开https链接报错:unable to get local issuer certificate
    Python打开https链接报错:unabletogetlocalissuercertificate或安装Python3.10以上版本,需要openssl1.1.1以上版本,会导致openssl下面缺少证书,记录下安装方法问题描述:当使用urllib.urlopen打开一个https链接时抛出如下异常:urllib.error.URLError:<urlopenerror[SSL:......
  • Field getType 和 getDeclaringClass 两个方法啥区别
    getType()和getDeclaringClass()是Java反射(Reflection)API中Field类的两个方法。这两个方法分别提供了关于字段(Field)的不同信息。以下是它们之间的主要区别:getType()getType()方法返回Field对象表示的字段的Class对象。它表示字段的类型,即字段可以持有的值的类......
  • 遇到Failed to get response from https://registry.npm.taobao.org/vue-cli-version-
    1.问题在启动vueui时,总是遇到报错,如下图:2.解决参考:vuecli创建项目报错:Failedtogetresponsefrom/vue-cli-version-marker找到你的.vuerc文件:C:\Users\trmbh\.vuerc,这里根据自己的用户名更改然后改为{"useTaobaoRegistry":false,"packageManager":"npm"}第......