本記事は ディップ with 全部俺 AdventCalendar 16日目の記事です。
動作確認していたサービスでhttpを閉じる(リダイレクトすらしない)ことを確認するためにcurlで確認していたところ、Responseで301が返ってきているため、リダイレクト追跡するのはどうすればよいか?に詰まったのでメモとして残しておきます。
3xx系のリダイレクトを追跡する
curl -X GET http://domain.example
上記コマンドで301 Moved Permanently
というようなResponseが来た。
3XX系のhttp status codeはリダイレクトに当たるため、変なリダイレクトになっていないか確認する必要がある。
調べてみるとオプション指定でOKということだったので、オプション指定して確認
curl -X GET http://domain.example -L
上記のように -L オプションをつければ良い。
なお、詳細な情報(ResponseHeaderなど)が必要な場合 -v
オプションで確認できる。
TSLのバージョンを指定してリクエストする
通信でTSLのバージョンを固定している場合などがある。
※低いバージョンを締め出しているケース
この場合curlで本当に閉じているか?の確認を行う場合は下記のオプションを使う。
--tlsv1.2
1.0や1.1を確認する場合は1.2の部分を変更すれば良い。
ただし、-v
オプションを付けないと色々見れないので、
curl -X GET https://domain.example --tlsv1.2
これでtlsのバージョンを固定した通信になる。 なお、1.0や1.1が閉められている場合、下記の様なエラーが出力される。
$ curl -X GET https://domain.example --tlsv1.1 curl: (35) error:14004410:SSL routines:CONNECT_CR_SRVR_HELLO:sslv3 alert handshake failure
以上