Wireshark でTLSの通信を読む
TLSの勉強中です。TLSの通信を眺めるにはやっぱりHTTPSだろうということで簡単なHTTPSサーバを立ててトラフィックを眺めてみたいと思います。『プロフェッショナルSSL/TLS』にも書かれていました。「一番良い方法は実際のパケットを見ることです」と。
下準備
Caddy を利用します。HTTPSとHTTP用の設定ファイルを用意します。
$ tree . ├── Caddyfile.http ├── Caddyfile.https ├── cert.pem ├── key.pem └── public └── index.html $ cat Caddyfile.http :8080 root public $ cat Caddyfile.https :8443 tls cert.pem key.pem root public
自己署名証明書は以下のコマンドで生成しました。
$ openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -nodes
HTTPS通信を覗いてみる
Wireshark 上であらかじめ lo0
をキャプチャする設定で待ち構えておきます。
フィルタは tcp.port == 8443
に設定しておきます。
$ caddy -conf Caddyfile.https
でサーバを立て
$ curl -v --insecure https://127.0.0.1:8443
で叩きます。
総パケット数は 39 でした。
HTTP通信を覗いてみる
$ caddy -conf Caddyfile.http
でサーバを立て
$ curl -v http://127.0.0.1:8080
で叩きます。
総パケット数は 14 でした。
サンプルプロジェクト
以上のような設定をまとめて GitHub に上げておきました。ご参考になれば幸いです。