Curl SSL 証明書: ローカル発行者証明書を取得できません

Curl SSL 証明書: ローカル発行者証明書を取得できません

詳細モードで使用するとcurl、次のエラーが発生します: コマンド:

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

エラー:

  • 証明書検証場所を正常に設定しました:
  • CAファイル: なし CAパス: /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 を使用できます。

関連情報