きみはねこみたいなにゃんにゃんなまほう

ねこもスクリプトをかくなり

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

で叩きます。

f:id:lightbulbcat:20180624035235p:plain

総パケット数は 39 でした。

HTTP通信を覗いてみる

$ caddy -conf Caddyfile.http

でサーバを立て

$ curl -v http://127.0.0.1:8080

で叩きます。

f:id:lightbulbcat:20180624040437p:plain

総パケット数は 14 でした。

サンプルプロジェクト

以上のような設定をまとめて GitHub に上げておきました。ご参考になれば幸いです。