[解決済み] Ubuntu 14.04 LTS の wget で SSL 接続が確立できない。
質問
wgetで画像をダウンロードしようとしたら、エラーになりました。Unable to establish SSL connection.
wget https://www.website.com/image.jpg
--2015-02-26 01:30:17-- https://www.website.com/image.jpg
Resolving www.website.com (www.website.com)... xx.xxx.xx.xx
Connecting to www.website.com (www.website.com)|xx.xxx.xx.xx|:443... connected.
Unable to establish SSL connection.
私のテストケースです。
- Ubuntu 12.04.4 LTS (GNU/Linux 3.8.0-44-generic x86_64) を使用し、GNU Wget 1.13.4 build on linux-gnu, I could download the image を上記のコードで実行します。エラーはありません。
- Ubuntu 14.04 LTS (GNU/Linux 3.13.0-24-generic x86_64), GNU Wget 1.15 built on linux-gnu, I couldn't be download the image. を使用しています。
もう一つの変数は、www.website.com が TLS 1.0 を使用していることです。これがwgetにどのような影響を与えるのか、私には見当がつきません。しかし、TLS 1.2のウェブサイトから画像をwgetした場合、両方のテストケースからssl接続エラーが発生しません。
Ubuntu 14.04 または wget 1.15 は TLS 1.0 ウェブサイトに対応していないのでしょうか? この接続を有効にするために、何かライブラリやソフトウェアをインストール/ダウンロードする必要がありますか?
解決方法を教えてください。
<ブロッククオート...今、私がテストしているウェブサイトでのみ発生します。機密事項のため、ここに掲載することはできません。
となると、TLS1.2と相性の悪いサイトの一つということになりますね。12.04で使われているopensslはクライアント側でTLS1.2を使用していませんが、14.04ではTLS1.2を使用しているので、この違いが出ているのでしょう。これを回避するために、明示的に
--secure-protocol=TLSv1
. それでもだめな場合は、以下の方法でアクセスできるかどうか確認してください。
openssl s_client -connect ...
(おそらくない) と
openssl s_client -tls1 -no_tls1_1, -no_tls1_2 ...
.
他の原因も考えられますが、この原因が最も可能性が高く、サイトにアクセスしない限り、すべては推測に過ぎませんのでご注意ください。
想定される問題の詳細 通常、クライアントはサーバーにアクセスする際に、最も互換性のあるハンドシェイクを使用します。これはSSLv23ハンドシェイクで、古いSSLバージョンと互換性がありますが、クライアントがサポートする最高のTLSバージョンを発表し、サーバーが最適なバージョンを選択できるようにするものです。この場合、wgetはTLS1.2をアナウンスします。しかし、TLS1.2のようなものがあることを想定していない壊れたサーバーもあり、クライアントがこのホットな新バージョン(2008年から!)のサポートを発表すると、サーバーがサポートする最適なバージョンで応答するのではなく、ハンドシェイクを拒否してしまうのです。このような壊れたサーバーにアクセスするためには、クライアントは嘘をついて、TLS1.0しかサポートしていないと主張しなければならないのです。
<ブロッククオートUbuntu 14.04 や wget 1.15 は TLS 1.0 ウェブサイトに対応していないのでしょうか?この接続を可能にするために、何かライブラリやソフトをインストール/ダウンロードする必要がありますか?
問題はサーバーであり、クライアントではありません。 ほとんどのブラウザは、壊れたサーバーを下位バージョンで再試行することで対処しています。他のほとんどのアプリケーションは、最初の接続試行が失敗すると永久に失敗します。
関連
-
[解決済み】Bashのexportコマンド
-
[解決済み】Linuxのdocker-composeでパーミッションが拒否されました【終了】。
-
[解決済み] ls -l の "total" が表示されるファイルサイズの合計にならないのはなぜですか?[クローズド]
-
[解決済み] フォルダが存在するにもかかわらず、マウントポイントが存在しない。手動でマウントできる
-
[解決済み] sudo mv home/* *」というコマンドは何をするのですか?[クローズド]
-
[解決済み] Linux/Ubuntu のセットです。不正なオプション -o pipefail
-
[解決済み] GDB からソースがないとのクレーム
-
[解決済み] VIMでの検索と置換の結果、末尾の文字が表示される
-
[解決済み] Vimを保存して終了するにはどうしたらいいですか?
-
[解決済み] grepコマンドで特定の列にマッチングさせる
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】スラッシュとrsyncコマンド
-
[解決済み】PytorchがCUDAは利用できないと言う件
-
[解決済み】SSL接続が確立できません。SSL証明書を修正するにはどうしたらいいですか?
-
[解決済み] linuxでpsから特定のプロセスをgrepする方法は?
-
[解決済み] tar: エラーは回復不可能:現在終了中
-
[解決済み] という記号がありますが、これはどういう意味ですか?
-
[解決済み] エラー: gdal がインストールされているのに、R 依存パッケージのインストール中に gdal-config が見つからない
-
[解決済み] フォルダが存在するにもかかわらず、マウントポイントが存在しない。手動でマウントできる
-
[解決済み] Linuxで.dllを使用することは可能です [重複].
-
[解決済み] lsコマンドの出力をフィルタリングして、2月に作成されたファイルのみを表示させるにはどうすればよいですか?