Curl SSL 证书:无法获取本地颁发者证书

Curl SSL 证书:无法获取本地颁发者证书

在详细模式下使用时curl,出现此错误:命令:

$ curl -vvI https://www.google.com

错误:

  • 成功设置证书验证位置:
  • CAfile:无 CApath:/etc/ssl/certs
  • TLSv1.3(OUT),TLS 握手,客户端 hello(1):
  • TLSv1.3(IN),TLS 握手,服务器 hello(2):
  • TLSv1.3(IN),TLS 握手,加密扩展(8):
  • TLSv1.3(IN),TLS 握手,证书(11):
  • TLSv1.3 (OUT),TLS 警报,未知 CA (560):
  • SSL证书问题:无法获取本地颁发者证书
  • 关闭连接 0

但是如果我用 发送相同的命令sudo,连接就会成功建立,所以我猜这是一个权限问题。

这是我通过命令得到的namei

$ namei -mo /etc/ssl/certs/ca-certificates.crt

f: /etc/ssl/certs/ca-certificates.crt
drwxr-xr-x root root /
drwxr-xr-x root root etc
drwxr-xr-x root root ssl
drw-r--r-- root root certs
                     ca-certificates.crt - Permission denied

所以我发出了这个命令:

$ sudo chmod 755 /etc/ssl/certs/ca-certificates.crt

执行没有错误,但namei命令的输出是相同的。

/etc/ssl/certs/certificate.crt 也是一样

最后,如果我发送这个命令:

$ sudo ls -l /etc/ssl/certs/ca-certificates.crt

我得到:

-rwxr-xr-x 1 root root 218664 lug 19 18:51 /etc/ssl/certs/ca-certificates.crt

答案1

您无法访问/etc/ssl/certs目录中的文件,因为它缺少搜索权限 ( x)。您可以使用 修复该问题chmod,例如:chmod a+x /etc/ssl/certs

答案2

如您所见,您无法访问 ca-certificates.crt。curl 命令尝试使用您的用户访问证书包,但失败了。您可以使用 来修复此问题chmod。在这种情况下可以使用 755,因为证书包不是敏感文件。

相关内容