wget
http URLでコマンドを実行しようとすると、次のエラーメッセージが表示されます。
ERROR: The certificate of `url' is not trusted.
ERROR: The certificate of `url' hasn't got a known issuer.
答え1
Debian または Ubuntu を使用している場合は、次のca-certificates
パッケージをインストールします。
$ sudo apt-get install ca-certificates
証明書の検証に興味がない場合は、次の--no-check-certificate
オプションを使用してください。
$ wget --no-check-certificate https://download/url
注:2番目のオプションは中間者攻撃の可能性があるためお勧めできません。
答え2
wget の場合、各 TFM は以下を使用します。
--no-check-certificate
オプション。
「利用可能な認証局のサーバー証明書を確認しないでください。URLホスト名が証明書によって提供される一般名と一致する必要はありません。」
答え3
私の場合、システム日付が正確ではなく、pipを実行したときに証明書の有効期限を超えたことが根本的な原因でした。これは pip 自体ではなく SSL ライブラリに関連しています。したがって、問題のURLに対する単純なwgetまたはカール呼び出しで問題が再現されます。
もちろん、wgetとpipの--no-check--certificate(または同等の証明書)を使用して問題をすばやく解決することもできました。
これは、SBC(RasberryPi / BeagleBoneなど)やリアルタイムクロック(RTC)がデフォルトで提供されていない他のシステムを使用する場合に一般的な状況です。だから学んだ教訓は、システム時間を最新の状態に保つために可能な限りNTPを使用することです。