web-dev-qa-db-ja.com

Ubuntu 14.04のCurlでCA証明書の問題を修正する方法は?

Ubuntu 14.04を使用しています。 curlを使用すると、次のエラーが表示されます。

curl: (77) error setting certificate verify locations: CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath:

私がグーグルから集めたものから、それが探しているCAfileの場所はUbuntuにとって正しくありません(そしてそれは私のコンピューターに存在しません)、/etc/ssl/certs/ca-certificates.crtは適切な場所です。

ほとんどのソリューションでは、環境変数CURL_CA_BUNDLEを適切な場所に設定するか、cacert=/etc/ssl/certs/ca-certificates.crtをホームディレクトリの(新しく作成された).curlrcファイルに追加しました。私は両方を試しましたが、どちらも問題を完全に解決しませんでした。 curlはこの場所を検出していますが、まだ機能せず、エラーが発生します。

curl: (60) SSL certificate problem: self signed certificate in certificate chain

また、Ubuntuでcurlをアンインストールして再インストールし、CA証明書を$ Sudo update-ca-certificates --freshで更新しました。これにより、証明書は更新されましたが、エラー60はなくなりませんでした。

私はCA証明書についてそれほど知識がなく、過去に自己署名証明書を意図的に追加したのではないかと疑っています。おそらく偶然かもしれませんが、私は知りません。

誰もこれを修正する方法を知っていますか?すべての証明書で実際に新鮮に始める方法はありますか?それとも、この自己署名証明書がどこにあるのか、そしてそれをどのように削除するのかを私がどのように考えているのか誰も知っていますか?

PS:-k(別名--insecure)フラグを使いたくありません。これを安全に機能させたい。

13

過去数日間にわたってこれを調査し、作業した後、私はそれを動作させましたが、答えはやや単純になりました。

capath=/etc/ssl/certs/ファイルに.curlrcを設定する必要がありました。

これにより、コマンドラインでcurlが機能しました。 Rでさらにcurlを動作させるには(最初に問題に遭遇した場所)、以前に試したようにcacert=/etc/ssl/certs/ca-certificates.crtファイルに.curlrcを含める必要がありました。そうでない場合は、/etc/pki/tls/certs/ca-bundle.crt

自己署名証明書に関するエラーが表示された理由がまだわかりません。

他のランダムな調査結果に基づいて、Curl Webサイトから次の証明書もダウンロードしました。

Sudo wget http://curl.haxx.se/ca/cacert.pem

同じcertsディレクトリに。 cafileがこれを指し示していても同様に機能しました。最後にca-certificates.crtに戻しましたが、それでも動作します。

これがなぜ機能したのか、何が起こっているのか正確にはわかりませんが、解決されています。

9

cafileキーは私には機能しませんが(curl 7.45.0)、cacert(--cacertオプションから)は機能します。私の。curlrcファイル:

capath=/etc/ssl/certs/
cacert=/etc/ssl/certs/ca-certificates.crt
8
Duke

数回調査した後、私はそれを機能させましたが、答えはやや単純なものになりました。段階的に行う

Step:1 Open terminal ctrl+alt+t
Step:2 cd /etc/ssl/certs/
Step:3 Sudo wget http://curl.haxx.se/ca/cacert.pem 

ステップ3は、certsフォルダーにpemファイルをダウンロードします

  Step 4: Check if .curlrc file is available in your home folder or not. 

.curlrcは隠しファイルです。ホームディレクトリでctrl + hで確認します。存在しない場合は、端末タイプで

Step 5:  nano ~/.curlrc 
Step 6: Now paste the below lines in the open file
        capath=/etc/ssl/certs/
        cacert=/etc/ssl/certs/ca-certificates.crt
Step 7: Now save the file and do your things using curl command.

N.Bここではnanoエディターを使用しましたが、任意のエディターを使用できます。

0
PyDevSRS

Ubuntu 14.04.5のC++プログラムの1つで同じ問題に直面しました。の 。curlrc メソッドは有効になりませんでした。

これは、ダウンロードすることで解決しました ca-certificates.crt に / etc/ssl/certs/ca-certificates.crt シンボリックリンクの作成 ca-bundle.crt 下 / etc/pki/tls/certs / ディレクトリ。

お役に立てれば!

0
Tamil