Chrome と macOS アプリの HTTP/3 通信をキャプチャする方法
5 分で読めます
1. 問題:HTTP/3 のリクエストが表示されない
Google Chrome では Web サイトが読み込めている、あるいは macOS アプリがレスポンスを受け取っているのに、Proxyman にそのリクエストが表示されないことがあります。考えられる原因の一つが HTTP/3 です。HTTP/3 は、通常の HTTP プロキシが扱う TCP 接続ではなく、UDP 上の QUIC を使用します。
- 一部のリクエストは表示されるのに、別のリクエストはキャプチャをすり抜ける。
- Proxyman の証明書をインストールするだけでは、QUIC の通信はプロキシ経由になりません。
- Mac アプリは、システムのプロキシ設定を無視することもあります。
解決策: Proxyman で Network Extension と Use HTTP/2 を有効にします。対応している接続では、この拡張機能により HTTP/3 が TCP にフォールバックし、Proxyman が HTTP/2 でリクエストをキャプチャできるようになります。
期待される結果
- Chrome や Mac アプリからの新しいリクエストが Proxyman に表示される。
- 証明書を信頼する設定と SSL Proxying を行うと、HTTPS のヘッダーとボディを読めるようになる。
- ネゴシエーションが成立した場合、キャプチャされたプロトコルとして HTTP/2 が表示されます。下の例では、上流サーバーが
h2を受け入れています。

この手順は、HTTP/3 が HTTP/2 にフォールバックした後のリクエストをキャプチャします。ネイティブの QUIC 通信はデコードしません。HTTP/2 が利用できない場合は、HTTP/1.1 へのフォールバックも起こり得ます。
2. HTTP/3 フォールバックの仕組み
HTTP/3 は、リクエストがネットワーク上を伝わる方法を変えます。ただし、URL、ヘッダー、レスポンスボディといった、おなじみの HTTP データを運ぶ点は変わりません。HTTP/3 の標準仕様 では、QUIC による接続に失敗した場合、TCP ベースの HTTP にフォールバックすることが説明されています。
キャプチャ中に起きることは次のとおりです:
- Chrome またはアプリが、UDP ポート 443 上の QUIC で接続を試みます。
- Proxyman の Network Extension は、処理対象の通信について、その接続を拒否します。
- フォールバックに対応しているクライアントは、代わりに TCP 接続を開きます。
- Use HTTP/2 を有効にしていれば、Proxyman は HTTP/2 をネゴシエーションし、そのやり取りを表示できます。
これにより、API のデータ、ログインリクエスト、サーバーエラーをデバッグできます。トランスポートが変わるため、HTTP/3 のタイミングや QUIC 固有の不具合を調べる場合は、ネイティブの QUIC キャプチャツールを使ってください。
3. 始める前に
- macOS 26 以降を使用してください。
- Proxyman for macOS の最新の直接配布版をインストールしてください。
- Network Extension を使うには Proxyman PRO が必要です。この拡張機能は現在ベータ版で、デフォルトではオフになっており、Setapp では利用できません。
- TCP フォールバックに対応している Web サイトやアプリを使用してください。HTTP/3 のみに対応しているクライアントでは、この方法は使えません。
このガイドでは、Mac で動作しているアプリを対象としています。iPhone や Android デバイスには、それぞれ個別のキャプチャ設定が必要です。
4. Network Extension をインストールして有効にする
- Proxyman → Settings → Network Extension を開きます。
- Enable Network Extension をオンにします。
- 表示された場合は、Install and Enable をクリックします。

- System Settings → General → Login Items & Extensions を開きます。
- Extensions で、By Category → Network Extensions を選択します。

- Proxyman を有効にし、macOS がネットワーク構成の追加を求めたら Allow をクリックします。

- Proxyman に戻り、ローカルアプリケーションの HTTP と HTTPS をキャプチャしているというメッセージが表示されるまで待ちます。
インストールの詳しい手順は、Network Extension ガイド を参照してください。キャプチャ中は Proxyman を開いたままにしてください。
5. Proxyman で HTTP/2 を有効にする
- Proxyman → Settings → General を開きます。
- Proxy セクションで、Use HTTP/2 をオンにします。
- 設定を変更したら、新しいリクエストを送信してください。既存の接続は閉じられます。

HTTP/2 のサポートは Proxyman v26.0.0 から利用でき、デフォルトではオフになっています。プロトコルのネゴシエーションとフォールバックについては、HTTP/2 ガイド で解説しています。
HTTPS の検査を設定する
- Certificate → Install a Certificate on this Mac… を開きます。
- Automatic Mode を使用し、インストールを承認して、Installed & Trusted と表示されていることを確認します。
- 検査したいアプリまたはドメインで SSL Proxying を有効にします。サイドバーで右クリックして有効にすることもできます。
- Proxyman が復号された内容をキャプチャできるよう、リクエストを再実行します。
まだ証明書の信頼設定が済んでいない場合は、macOS の証明書ガイド を参照してください。Network Extension は接続を振り分け、証明書の信頼によって Proxyman が HTTPS のコンテンツを読めるようになります。
6. Google Chrome や macOS アプリの通信をキャプチャする
Google Chrome
- ⌘Q で Chrome を完全に終了してから、再度開いて新しい接続を作成します。
- デバッグしたい Web サイトを開き、リクエストを送信する操作を繰り返します。
- Proxyman のサイドバーで Chrome または対象のドメインを選択します。
- リクエストを選択すると、ヘッダー、クエリパラメータ、ボディ、レスポンスを確認できます。
- 再読み込みしても新しいリクエストが送られない場合は、Chrome DevTools を開き、Network → Disable cache を選択して、DevTools を開いたまま再読み込みしてください。
macOS アプリ
- Network Extension を有効にした後、アプリを終了して再度開いてください。
- リストの更新やプロフィールの読み込みなど、ネットワーク操作を発生させます。
- Proxyman でアプリまたはその API ドメインを選択します。
- レスポンスのステータスとボディを確認して、サーバーの返答を把握します。
アプリは引き続き Proxyman の証明書を信頼している必要があります。証明書ピンニングや別の信頼ストアがあると、フォールバックが機能していても HTTPS の検査ができない場合があります。
7. キャプチャした HTTP バージョンを確認する
- アプリから Proxyman への接続について、リクエストの HTTP バージョンを確認します。
- Proxyman からサーバーへの接続については、Request パネルの Connection Log を開きます。
- 上流の HTTP/2 を確認するには、
ALPN: server accepted h2を探します。 - 受け入れられたプロトコルを確認してください。
h2を含む提案があるだけでは、確認にはなりません。
2 つの接続では異なる HTTP バージョンが使われることがあります。結果の読み方については、Connection Log ガイド を参照してください。
8. リクエストが表示されない場合のトラブルシューティング
- 何も表示されない: Network Extension が有効になっていること、Recording がオンになっていること、フィルタでリクエストが隠れていないことを確認してください。対象のアプリを再起動してください。
- HTTPS の内容が暗号化されたまま: 証明書の信頼を確認し、Web サイトのドメインとは異なる場合がある実際の API ドメインで SSL Proxying を有効にしてください。
- キャプチャが HTTP/1.1 になっている: Use HTTP/2 を確認して、再試行してください。クライアントとサーバーは、それぞれの接続で HTTP/2 に対応している必要があります。
- アプリが接続に失敗する: 証明書のエラーを確認し、TCP フォールバックなしで HTTP/3 を必須としていないかを確認してください。
- 独自の QUIC サービスが表示されない: このフォールバックが扱うのは UDP ポート 443 です。それ以外のポートの QUIC は、この手順の対象外です。
作業が終わったら、Proxyman の設定で Enable Network Extension をオフにして、拡張機能によるキャプチャを停止してください。
関連記事
