web-dev-qa-db-ja.com

Ubuntu 14.04 LTS curlが有効であるにもかかわらずCA証明書をサポートしない場合の対処方法

Ubuntu 14.04では、このcurl https://api.the-newshub.com/api/1/topics/trending/topを実行しようとしています。動作していませんが、Firefoxを使用してアクセスすると動作します。

証明書を更新しました:Sudo apt-get install --reinstall ca-certificatesおよびupdate-ca-certificates -f。まだ何もありません。

UbuntuのネイティブCA証明書はどのくらいの頻度で更新されますか?新しい証明書はどれくらいの頻度で表示されますか?

そのようなURLに本当にアクセスする必要がある場合の回避策は何ですか?しかし、あなたはドメインを制御しませんか?ただし、SSL検証は必須です。

3
CMCDragonkai

これをカールすることは私にとってはうまくいきますが、次の2つのことができます( man curl から取得):

  1. Firefoxでは、Options、次にAdvanced、次に暗号化タブ、証明書の表示。これにより、証明書マネージャーが開き、Exportができます。 [種類として保存]でPEMを選択してください。

    証明書を~/cert.pemに入れたとすると、次のようになります:

    curl -E ~/cert.pem https://api.the-newshub.com/api/1/topics/trending/top
    
  2. 古いSSLサーバーの多くは、新しいバージョンのOpenSSLなどが使用するSSLv3またはTLSに問題があるため、SSLバージョンのcurlで使用するものを指定すると便利な場合があります。 -3、-2または-1を使用して、使用する正確なSSLバージョンを指定します(それぞれSSLv3、SSLv2またはTLSv1の場合):

    curl -2 https://api.the-newshub.com/api/1/topics/trending/top
    

    それ以外の場合、curlは最初にv3、次にv2を使用しようとします。

    注:サイトは証明書に従ってSSLv3を使用しているようですので、この2番目のアイデアはおそらく役に立たないでしょう。

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

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

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

2
MrVaykadji