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)フラグを使いたくありません。これを安全に機能させたい。
過去数日間にわたってこれを調査し、作業した後、私はそれを動作させましたが、答えはやや単純になりました。
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
に戻しましたが、それでも動作します。
これがなぜ機能したのか、何が起こっているのか正確にはわかりませんが、解決されています。
cafileキーは私には機能しませんが(curl 7.45.0)、cacert(--cacertオプションから)は機能します。私の。curlrcファイル:
capath=/etc/ssl/certs/
cacert=/etc/ssl/certs/ca-certificates.crt
数回調査した後、私はそれを機能させましたが、答えはやや単純なものになりました。段階的に行う
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エディターを使用しましたが、任意のエディターを使用できます。
Ubuntu 14.04.5のC++プログラムの1つで同じ問題に直面しました。の 。curlrc メソッドは有効になりませんでした。
これは、ダウンロードすることで解決しました ca-certificates.crt に / etc/ssl/certs/ca-certificates.crt シンボリックリンクの作成 ca-bundle.crt 下 / etc/pki/tls/certs / ディレクトリ。
お役に立てれば!