CygwinのHTTPS URLでwgetを実行するときの証明書エラーを修正するにはどうすればよいですか?


164

たとえば、実行wget https://www.dropbox.comすると次のエラーが発生します。

ERROR: The certificate of `www.dropbox.com' is not trusted.
ERROR: The certificate of `www.dropbox.com' hasn't got a known issuer.

回答:


131

ここで現在のハックソリューションを見ると、結局、適切なソリューションを説明する必要があると思います。

まず、ca-certificates Cygwinのsetup.exeを介してcygwinパッケージをインストールし、証明書を取得する必要があります。

curlなどのハックを使用して証明書をダウンロードしないでください(隣接する回答のアドバイスとして)。これは基本的に安全ではなく、システムを危険にさらす可能性があるためです。

次に、 Cygwin環境ではデフォルトで証明書を取得しないため、証明書の場所をwgetに通知する必要があります。コマンドラインパラメーター--ca-directory=/usr/ssl/certs(シェルスクリプトに最適)を使用するか、ファイルに追加ca_directory = /usr/ssl/certsすることでそれが~/.wgetrcできる場合。

ln -sT /usr/ssl /etc/ssl別の回答で指摘されているように実行することでそれを修正することもできますが、これはシステムへの管理アクセス権がある場合にのみ機能します。私が説明した他のソリューションはそれを必要としません。


5
この回答、特に〜/ .wgetrcファイルについてのリマインダーをありがとう。MacPortsユーザーとして、私の証明書は/ opt / local / etc / opensslにあります。これは誰かが重宝すると思います。
ブライスアンダーソン

3
そして、finkの場合、それらは/sw/etc/ssl/certs/ca-bundle.crtにあります。これは、ここでca-bundle説明されているように、パッケージの一部として提供されます
jhfrontz 2015年

タイプミスかどうかはわかりln -s /etc/ssl /usr/sslませんが、うまくいきました。
zkent

240

証明書の有効性を確認する必要がない--no-check-certificate場合は、wgetコマンドラインでオプションを追加してください。これは私にはうまくいきました。

注:これにより、中間者攻撃(MitM)が発生しやすくなるため、セキュリティを重視する場合はお勧めしません。


1
これでうまくいきました。証明書のインストールと更新に関する他のソリューションでは解決できませんでした。私の特定のケースでは、セキュリティ上の懸念はありません。
15

103

問題が既知のルートCAがないことであり、ubuntuまたはdebianを使用している場合は、次の1行で問題を解決できます。

sudo apt-get install ca-certificates

1
apt-getはcygwinにありますか?apt-getはredgatにありますか?;)
Denis Chenu

5
ca-certificatesはすでに私のコンピュータにインストールされています。実行update-ca-certificatesすることで問題は解決しました。
–TomásFox 2015

これは、Debian chrootを使用した私のSynology DS215jでも機能しました。
microspino

@fox update-ca-certificatesはubuntuコマンドであり、debianでは使用できません。
Devy

@Devyそれは実際にdebian wheezyを実行している私のラズベリーpiで動作しました
Luis Lobo Borobia

13

まず、SSL証明書をインストールする必要があります。手順(https://stackoverflow.com/a/4454754/278488に基づく):

pushd /usr/ssl/certs
curl http://curl.haxx.se/ca/cacert.pem | awk 'split_after==1{n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1} {print > "cert" n ".pem"}'
c_rehash

上記はを修正するcurlには十分ですwgetが、追加のシンボリックリンクが必要です:

ln -sT /usr/ssl /etc/ssl

6
これは、特に名前にhaxxを使用して、ランダムなWebサイトからルート認証局をインストールするのに安全ではありませんか?
クロエ

6
cURLの開発サイトである@Chloecurl.haxx.se。かなり信頼できる人々。
イルミネート、

カールなしでどのように修正しますか?
マークラカタ2012

1
omfgシンボリックリンクは私が見逃したものでした... 1ライナーの修正を30分検索しました> <
Populus

4
これはいくつかのレベルでハックです。まず、「ca-certificates」と呼ばれるCygwinパッケージがあるため、証明書を手動でダウンロードする必要はありません。第2に、シンボリックリンクが機能するのは、システムへの管理アクセス権がある場合、またはユーザーアカウントのみにcygwinをインストールしている場合のみであり、常にそうであるとは限らないため、コードは信頼できません。
Shnatsel 2013年

10

これが役立つかもしれません:

wget --no-check-certificate https://blah-blah.tld/path/filename

1
もう1つ:この状況は、Kaspersky AntiVirusまたは同じソフトを使用している場合にも発生します(デフォルトでは、サイトの通常の検証済みSSL証明書が独自のものに置き換えられます)。そのため、AntivirusソフトでのSSLトラフィックのチェックを無効にできます。
Alexey Soloviev

4
apt-get install ca-certificates 

s違いが;)


何もありませんapt-get、これは仕事をしないように、cygwinの中に。
jlh

1

同様の問題があり、ウイルス対策ソフトウェア(Kaspersky Free 18.0.0.405)を一時的に無効にして修正しました。このAVには、HTTPS応答で検出されたすべての証明書に自動的に自己署名するHTTPSインターセプトモジュールがあります。

CygwinのWgetはAVルート証明書について何も知らないため、Webサイトの証明書が信頼されていない証明書で署名されていることがわかると、そのエラーが出力されます。

AVを無効にすることなくこれを永続的に修正するには、WindowsルートストアからAVルート証明書/etc/pki/ca-trust/source/anchorsを.pemファイル(base64エンコーディング)としてコピーして実行する必要があります。update-ca-trust



-4

Windowsを使用している場合は、コントロールパネルに移動し、自動更新をクリックして、[Windows Update Webサイト]リンクをクリックします。手順に従ってください。少なくともこれは私にとってはうまくいきます。以前のようにhttps://www.dropbox.comに行くたびに、証明書はもう発行されません。


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