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


13

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をアンインストールして再インストールし$ sudo update-ca-certificates --fresh 、証明書を更新したCA証明書を更新しようとしましたが、エラー60は消えませんでした。

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

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

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

回答:


10

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

ファイルに設定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、それはまだ動作します。

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


8

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

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

1
これはUbuntu 16.04で私のために働いた!
ヨースト・ドブケン

0

Ubuntu 14.04.5のC ++プログラムの1つで同じ問題に直面しました。.curlrcの方法が効果を取っていませんでした。

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

お役に立てれば!


0

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

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.

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.