CharlesでSSL通信を覗く(/ω・\)

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【5/21開催】Azure OpenAI ServiceによるRAG実装ガイドを公開しました
生成AIを活用したユースケースで最も一番熱いと言われているRAGの実装ガイドを公開しました。そのガイドの紹介をおこなうイベントです!!
https://tech-lab.connpass.com/event/315703/

こんにちは、サイオステクノロジー技術部 武井です。今回は、便利だなと思ったちょっとしたツールを備忘録も兼ねて紹介します。CharlesというツールでHTTPやHTTPSの通信を覗き見ることができます。Fiddlerみたいなものです。Macでも使えるのが嬉しいです。

仕組み

HTTPのプロキシとして動作します。HTTPの場合は普通のHTTPプロキシとして動作するので、その動きは容易に想像出来ると思いますが、面白いのはHTTPSプロキシとして働くときです。以下の図のように動作します。

Screen Shot 2018-08-27 at 19.10.03

(1) ユーザーは、ブラウザからHTTPSのWebサイトにアクセスします。このときブラウザのプロキシはCharlesに向けているものとします。

(2) Charlesがリクエストをプロキシして、HTTPSのWebサイトに到達します。

(3) HTTPSのWebサイトからSSL証明書を取得します。

(4) Charlesが、HTTPSのWebサイトから取得した証明書を、Charlesが発行したSSL証明書に置き換えます。この証明書はCharles内にある自己認証局がサインしたオレオレ証明書になります。

(5) ユーザーは、Charlesが発行した証明書を受け取ります。

Screen Shot 2018-08-27 at 19.13.36

(6) ユーザーは、Charlesが発行したSSL証明書で、HTTPSのWebサイトに送りたいデータを暗号化します。

(7) Charlesが発行したSSL証明書に対応する秘密鍵で、(6)で送付したデータを復号化します。

(8) 復号化されたデータをCharles内に保存します。このデータをCharlesの画面から見ることが出来ます。

(9) HTTPSのWebサイトのSSL証明書で、(8)のデータを暗号化します。

(10) (8)のデータをHTTPSのWebサイトに送付します。

上記の流れを見てみればわかるのですが、バッチリ(9)で復号化された生データを取得出来ています。

インストールと設定

以下のURLでダウンロード出来ます。

https://www.charlesproxy.com

Charlesを起動して、「Help」→「SSL Proxying」→「Install Charles Root Certificate」の順にクリックします。

Screen Shot 2018-08-27 at 19.20.56

 

Macのキーチェーンアクセスを見てみると、Charlesで発行されたCA証明書があるのがわかります。

Screen Shot 2018-08-27 at 19.23.58

 

証明書をダブルクリックします。このCA証明書を常に信頼するようにしておかないと、ブラウザでアクセスしたときに警告が出たり、アクセスできないサイトが出たりしてしまいます。 以下のように「When using this certificate」を「Always Trust(常に信頼)」にします。

Screen Shot 2018-08-27 at 19.26.03

 

「Proxy」→「SSL Proxy Settings…」の順にクリックします。

Screen Shot 2018-08-27 at 19.28.59

 

「Add」をクリックして、以下のように入力して、「OK」をクリックします。これはCharlesがプロキシする対象のサイトを定義するもので、ここではすべてのサイトを対象にしています。

Screen Shot 2018-08-27 at 19.32.05

 

これで準備OKです。ブラウザのプロキシを変更しましょう。ブラウザとCharlesが同じPCにインストールされているのであれば、プロキシのホスト名は127.0.0.1、ポートは8888でOKのはずです。

では、試しにhttps://tech-lab.sios.jp/にアクセスしてみましょう。

Screen Shot 2018-08-27 at 19.37.34

HTTPSのサイトなんですが、バッチリSSL通信の中身を見ることが出来ます。

これがあれば、アプリ開発のときにHTTPS通信をモニタしたいときにすごく役に立つと思いおますヮ(゚д゚)ォ!

ちなみにですが、このソフトウェアは有償になります。無償でも利用は可能ですが、起動後30分経過すると自動で終了してしまうようです。

Screen Shot 2018-08-28 at 15.04.28

アバター画像
About 武井 宜行 269 Articles
Microsoft MVP for Azure🌟「最新の技術を楽しくわかりやすく」をモットーにブログtech-lab.sios.jp)で情報を発信🎤得意分野はAzureによるクラウドネイティブな開発(Javaなど)💻「世界一わかりみの深いクラウドネイティブ on Azure」の動画を配信中📹 https://t.co/OMaJYb3pRN
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる