Cloudflare R2上传图片(PutObject)报错: cURL error 60: SSL certificate problem

报错详细:

fecify系统,配置了cloudflare R2, 上传图片报错:

Error executing "PutObject" on "https://e488ac21685b86cb422f4ad37a608b05.r2.cloudflarestorage.com/cdn/common/0/image/2024/07/04/f32acc2ca8508a61ce0b1917e22d0425.png"; AWS HTTP error: cURL error 60: SSL certificate problem: certificate has expired (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://e488ac21685b86cb422f4ad37a608b05.r2.cloudflarestorage.com/cdn/common/0/image/2024/07/04/f32acc2ca8508a61ce0b1917e22d0425.png

客户的操作系统是debian-11 (ovh的debian 11),经过最终的排查,发现问题是操作系统本身的ssl是过期的。

解决

在宝塔中,点击软件商店,找到php-7.4,点击设置, 在弹窗中,点击配置文件菜单,找到:curl.cainfo

宝塔中的默认配置:

[curl]
curl.cainfo = /etc/ssl/certs/ca-certificates.crt

[openssl]
openssl.cafile=/etc/ssl/certs/ca-certificates.crt

由于操作系统默认的ca证书是过期的,导致的问题,所以下载一个新的证书

1.先下载证书 && 更改文件权限

curl -o /etc/ssl/certs/cacert.pem https://curl.se/ca/cacert.pem
chmod 755 /etc/ssl/certs/cacert.pem

2.更改配置

  • 参数的值,就是上面通过curl下载的文件,对应的文件路径。
[curl]
curl.cainfo = "/etc/ssl/certs/cacert.pem"

[openssl]
openssl.cafile = "/etc/ssl/certs/cacert.pem"

更改完成后

  • 点击保存按钮
  • 重启php

注意:如果更改后,还是有有问题,就按照上面的格式,加上双引号试试,然后重新保存重启php试试

3.在后台进行上传图片试试,是不是可以了

Copyright © fecify.com 2022 all right reserved,powered by Gitbook该文件修订时间: 2024-07-04 12:21:22

results matching ""

    No results matching ""