回答:
ここで現在のハックソリューションを見ると、結局、適切なソリューションを説明する必要があると思います。
まず、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
別の回答で指摘されているように実行することでそれを修正することもできますが、これはシステムへの管理アクセス権がある場合にのみ機能します。私が説明した他のソリューションはそれを必要としません。
ln -s /etc/ssl /usr/ssl
ませんが、うまくいきました。
問題が既知のルートCAがないことであり、ubuntuまたはdebianを使用している場合は、次の1行で問題を解決できます。
sudo apt-get install ca-certificates
update-ca-certificates
することで問題は解決しました。
update-ca-certificates
はubuntuコマンドであり、debianでは使用できません。
まず、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
これが役立つかもしれません:
wget --no-check-certificate https://blah-blah.tld/path/filename
同様の問題があり、ウイルス対策ソフトウェア(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
Windowsを使用している場合は、コントロールパネルに移動し、自動更新をクリックして、[Windows Update Webサイト]リンクをクリックします。手順に従ってください。少なくともこれは私にとってはうまくいきます。以前のようにhttps://www.dropbox.comに行くたびに、証明書はもう発行されません。