解决cURL resource: Resource id #147; cURL error: SSL certificate problem: unable to get local issuer..

17 篇文章 0 订阅

我这边抛出这个问题是因为我在php后端接口上 调用了阿里云OSS-SDK:"aliyuncs/oss-sdk-php": "~2.0"

请求删除文件的操作后出现这个错误提示的:

RequestCoreException: cURL resource: Resource id #147; cURL error: SSL certificate problem: unable to get local issuer certificate (60)

 然后去咨询阿里官方客服,给我回复的是:

oss的删除代码中没有关于SSL证书的使用。您的报错是关于SSL证书的。您核实一下。PHP的配置是否有问题。

这样就基本定位到问题是出现在 服务器上本地的PHP环境配置上的 SSl证书问题

虽然项目中一直使用 https 来进行访问都是正常的。。。

 

解决:

这个问题是跟本地PHP环境有关的,本地的PHP SSL中配置的CA不完全,或者是没有配置CA本地库导致

1⃣️ 可以参考这里的方式去处理:点我

2⃣️ 另外一种方案是,可以考虑本地Endpoint设置为http的地址,不要设置为https的地址,用http去请求

我这边是采用的是第二种方案, 用http的方式去请求的。 这样可以一切正常,访问OSS上的文件还是可以使用https的,没有什么影响

因为服务器上的php版本太多了,一个个去改很麻烦,又怕改错了。。

第一种方案好像是要把全部php版本的配置都要修改一下,我还没试过行不行,这篇博客也就不多说了

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当你遇到 `cURL Error: SSL certificate problem: unable to get local issuer certificate` 错误时,这通常表示 cURL 在尝试与某个服务器建立安全(HTTPS)连接时,它无法验证服务器提供的 SSL 证书。具体来说,cURL 无法从本地的信任存储(通常是操作系统或证书管理工具如 OpenSSL)中找到服务器证书的签发机构(CA,Certificate Authority)的证书解决这个问题通常有以下几个步骤: 1. **检查证书库**:确保你的系统中包含了必要的 CA 证书。在 Windows 上,这些证书通常由操作系统提供;在 Linux 或 macOS 上,可能需要手动安装或更新 ca-certificates 或 curl 安装包中的证书。 2. **更新证书**:如果证书已过期或不是最新的,你可以下载最新的根证书文件,并将其添加到系统证书路径中。 3. **使用 --cacert 选项**:cURL 提供了 `--cacert` 选项,指定一个包含受信任 CA 证书的文件,这样 cURL 就会使用这个文件来验证服务器证书。 4. **临时解决方案**:如果只需要暂时解决,你可以用 `--insecure` 参数忽略证书问题,但这不是长久之计,因为这会降低网络连接的安全性。 5. **证书错误代码**:了解具体的错误代码可以帮助你更精确地定位问题。例如,某些错误可能是由于证书被吊销或者证书链不完整导致的。 相关问题: 1. 如何检查和更新我的系统中的SSL证书库? 2. cURL 的哪些参数可以用来指定自定义的CA证书文件? 3. 证书过期会对cURL请求产生什么影响?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值