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 に上げておきました。ご参考になれば幸いです。