してみるテストロゴ
Apache 2.4系でHTTP/2サーバを構築してみるテスト。

wgetコマンドの小技

HTTPプロトコルを使ってファイルをダウンロードする場合に重宝するのがwgetやcurlといったコマンド。

このうち、wgetコマンドについて、便利な小技を紹介します。

SSL/TLSのプロトコルを指定する

githubからwgetコマンドで、ファイルをダウンロードしようとすると、wgetのビルド/バージョンによっては、以下のようにTLSv1で接続しに行ってしまうため、ファイルのダウンロードがうまくいかないことがあります。

$ wget https://github.com/nghttp2/nghttp2/releases/download/v1.32.0/nghttp2-1.32.0.tar.gz
	--2018-07-17 09:11:40--  https://github.com/nghttp2/nghttp2/releases/download/v1.32.0/nghttp2-1.32.0.tar.gz
	github.com (github.com) をDNSに問いあわせています... 192.30.255.112, 192.30.255.113
	github.com (github.com)|192.30.255.112|:443 に接続しています... 接続しました。
	OpenSSL: error:1409442E:SSL routines:SSL3_READ_BYTES:tlsv1 alert protocol version
	SSL による接続が確立できません。

つまり、githubにTLSv1.0で接続しようとして失敗しているようです。

そこで、wgetに--secure-protocol=TLSv1_2をオプションとして指定します。

古いプロトコルには、自動的にネゴシエートするので、実用上は、現時点で比較的新しめのTLSv1.2を指定することしか用途が無いと思います。

$ wget --secure-protocol=TLSv1_2 https://github.com/nghttp2/nghttp2/releases/download/v1.32.0/nghttp2-1.32.0.tar.gz
--2018-07-17 09:10:50--  https://github.com/nghttp2/nghttp2/releases/download/v1.32.0/nghttp2-1.32.0.tar.gz
github.com (github.com) をDNSに問いあわせています... 192.30.255.112, 192.30.255.113
github.com (github.com)|192.30.255.112|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: https://github-production-release-asset-2e65be.s3.amazonaws.com/11452676/23adf62c-5310-11e8-9f1a-b481b82bb4b7?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20180717%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20180717T001106Z&X-Amz-Expires=300&X-Amz-Signature=69aaf2d8c908871cc516953c0cf618c9d2df2fdcc4e3e7d9a40ba4fb3f2d7236&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dnghttp2-1.32.0.tar.gz&response-content-type=application%2Foctet-stream [続く]
--2018-07-17 09:11:06--  https://github-production-release-asset-2e65be.s3.amazonaws.com/11452676/23adf62c-5310-11e8-9f1a-b481b82bb4b7?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20180717%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20180717T001106Z&X-Amz-Expires=300&X-Amz-Signature=69aaf2d8c908871cc516953c0cf618c9d2df2fdcc4e3e7d9a40ba4fb3f2d7236&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dnghttp2-1.32.0.tar.gz&response-content-type=application%2Foctet-stream
github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com) をDNSに問いあわ せています... 52.216.130.83
github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|52.216.130.83|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 2216104 (2.1M) [application/octet-stream]
`nghttp2-1.32.0.tar.gz' に保存中

nghttp2-1.32.0.tar.gz            100%[==========================================================>]   2.11M   606KB/s 時間 3.7s

2018-07-17 09:11:20 (579 KB/s) - `nghttp2-1.32.0.tar.gz' へ保存完了 [2216104/2216104]

すると、無事TLSv1.2プロトコルによる接続が成功し、ダウンロードできます。

NEXT >> トップページに戻る

©Copyrights 2015-2018, non-standard programmer

このサイトは、あくまでも私の個人的体験を、綴ったものです。 軽く参考程度にご利用ください。