Ubuntu 10.04 / CURL:CAバンドルを修正/更新するにはどうすればよいですか?


17

最近、サーバーを8.04から10.04にアップグレードし、すべてのソフトウェアをそれに伴ってアップグレードしました。

私がオンラインで見つけたものから、CURLの新しいバージョンにはCAバンドルが含まれていないようであり、その結果、接続しているサーバーの証明書が有効な機関によって署名されていることを確認できません。

実際のエラーは次のとおりです。

CURLエラー:SSL証明書の問題。CA証明書に問題がないことを確認してください。
詳細:エラー:14090086:SSLルーチン:SSL3_GET_SERVER_CERTIFICATE:
証明書の検証に失敗しました 

私が見つけたいくつかのパレットは、CURLを呼び出すときにオプションを設定することでCAファイルを手動で指定するか、チェックを完全に無効にすることをお勧めしますが、各アプリケーションのCURL呼び出しを変更するのではなく、問題をグローバルに修正したいです。

CURLのCAの問題をサーバー全体で修正して、既存のすべてのアプリケーションコードを変更せずにそのまま機能させる方法はありますか?

回答:


17

私は同じ問題を抱えていましたが、少し調べてみると、curl devサイトからubuntuでcurlの準備ができたCA証明書のパッケージを直接ダウンロードできることがわかりました。

cd /etc/ssl/certs
sudo wget http://curl.haxx.se/ca/cacert.pem

これで、curlは最新のバンドルを使用するので、準備完了です。


1
その後、私はupdate-ca-certificates -f
Grain

9

コマンドラインからcurlを実行してgithubにあるawsコマンドラインツールを取得するUbuntu 12.04でも同様の問題がありました。コマンドラインを次のように実行した場合、私は見つけました:

curl https://raw.github.com/timkay/aws/master/aws -o aws --cacert /etc/ssl/certs/ca-certificates.crt

うまくいくでしょう。しかし、「cacert」引数を回避できるようにCURL_CA_BUNDLE環境変数を設定しようとしても機能しません。最終的にca証明書を更新することで問題が解決したようです。

sudo update-ca-certificates

補足として、ある時点で、curl.haxx.seからca-certsを更新しましたが、これは問題を解決しませんでしたが関連している可能性があります。(sudo wget http://curl.haxx.se/ca/cacert.pemから実行/etc/ssl/certs)。


リンク404'd for me。これは動作します:curl.haxx.se/ca/cacert.pem
dave1010

2
うーん。HTTPS経由ではないような証明書を含むファイルをフェッチするのは危険なようです。
マシューシンケル

5

通常、一意の実装を持たず、OpenSSLに対してコンパイルされたソフトウェアは、多くの場合にあるシステム全体のca-bundle.crtを参照し/usr/share/ssl/certsます。

Ubuntuでは場所が異なる場合がありますが、OpenSSLパッケージにはca-bundleファイルが含まれている必要があります。

CURLには、証明書の検証方法を指定するためのさまざまなオプションがあります。

  • CURL_CA_BUNDLEca-bundleファイルの場所の環境変数。
  • --capathCA証明書が置かれているディレクトリを指定できます。(オーバーライドCURL_CA_BUNDLE
  • --cacert CA証明書ファイルを指定できます。

CentOSサーバーで次を実行して、CURLが使用するca-bundleパスを特定できます。

$ curl-config --ca
/usr/share/ssl/certs/ca-bundle.crt

1
Open SSLがインストールされています。/ etc / ssl / certs /に「ca-certificates.crt」ファイルがあります。これは、一連の証明書が連結されているように見えますが、CURLには表示されないのでしょうか。CURLにはCA-Bundleの構成設定がありますか?
ニック

検証しようとしているのは証明書の種類ではないのですか?ルート証明書は比較的新しいため、Extended Verification certsなどの新しい証明書テクノロジでは、多くの場合caバンドルの更新が必要です。私の今後の編集もチェックしてください。
ワーナー

curl-configはUbuntuで有効なコマンドではないようです。CURL_CA_BUNDLEを設定するにはどうすればよいですか?
ニック

libcurl3-openssl-dev簡単なインターネット検索に基づいたパッケージの一部のようです。 CURL_CA_BUNDLE環境変数です。bashで、CURL_CA_BUNDLE=/path/to/file
ワーナー

パッケージはインストールされていますが、「curl-config --ca」は空の行を生成します。「CURL_CA_BUNDLE = "/ etc / ssl / certs / ca-certificates.crt"」を使用して変数を設定しようとしました。しかし、「curl-config --ca」はその後も空白行を生成します。
ニック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.