当我尝试 curl 服务器时出现以下错误:
curl -u User:Pass 'https://mydomain/remote.php/dav/files/User/Folder' -X PROPFIND --data '<?xml version="1.0" encoding="UTF-8"?>'
错误如下:
curl:(60)无法识别 Peer 的证书颁发者。更多详细信息请参见:http://curl.haxx.se/docs/sslcerts.html
curl 默认使用证书颁发机构 (CA) 公钥 (CA 证书)“捆绑包”执行 SSL 证书验证。如果默认捆绑包文件不够用,您可以使用 --cacert 选项指定备用文件。如果此 HTTPS 服务器使用捆绑包中代表的 CA 签名的证书,证书验证可能由于证书问题而失败(证书可能已过期,或者名称可能与 URL 中的域名不匹配)。如果您想关闭 curl 的证书验证,请使用 -k(或 --insecure)选项。
当我这样做时,curl -v google.com
它工作正常:
301 已移动
- 即将连接()到 google.com 端口 80 (#0)
- 正在尝试 2a00:1450:4007:815::200e...
- 已连接到 google.com (2a00:1450:4007:815::200e) 端口 80 (#0) GET / HTTP/1.1 用户代理:curl/7.29.0 主机:google.com 接受:/ < HTTP/1.1 301 永久移动 < 位置:http://www.google.com/< 内容类型:text/html;字符集=UTF-8 < 日期:2020 年 7 月 2 日星期四 07:41:54 GMT < 到期时间:2020 年 8 月 1 日星期六 07:41:54 GMT < 缓存控制:public,max-age=2592000 < 服务器:gws < 内容长度:219 < X-XSS-Protection:0 < X-Frame-Options:SAMEORIGIN <
301 已移动
文档已移动这里. * 与主机 google.com 的连接 #0 保持完好
我试过 :
yum reinstall ca-certificates
curl --remote-name --time-cond cacert.pem https://curl.haxx.se/ca/cacert.pem
mv cacert.pem /etc/ssl/certs/
- 添加
curl.cainfo="/etc/ssl/certs/cacert.pem"
到 php.ini - 重启 nginx
yum install ca-certificates
update-ca-trust force-enable
- 重启 nginx
cp /etc/ssl/certs/cacert.pem /etc/pki/ca-trust/source/anchors/
mv /etc/pki/ca-trust/source/anchors/cacert.pem /etc/pki/ca-trust/source/anchors/cert.pem
- 重启 nginx
都没有起作用