Skip to main content
この記事は、タイトルが xCurl の代わりにカスタム HTTP スタックを直接使用し、Fiddler などのプロキシを通じてトラフィックをデバッグする必要がある場合に使用します。

このガイダンスを使用する場面

このガイダンスは、次のいずれかに該当する場合に特に有用です。
  • タイトルがプロキシ設定を直接検査または適用する必要がある。
  • デバッグ ワークフローが Fiddler または他の開発プロキシに依存している。
  • HTTP スタックがセキュリティ プロバイダーとして Schannel を使用しておらず、プロキシ証明書を明示的にロードする必要がある。
一般的なセキュリティ ガイダンスについては、Microsoft Game Development Kit タイトル向けのセキュアな Web リクエストと WebSocket のベスト プラクティス を参照してください。

XBOX および PC でのプロキシ設定

XBOX でプロキシ設定を扱う場合、ビルドおよびターゲット環境でその経路が利用できるなら、WinHttpGetProxySettingsExWinHttpProxySettingsTypeXBox の組み合わせを優先してください。XBOX 上では、この API は 2026 年 4 月版 Microsoft Game Development Kit (GDK) 以降、プロキシ設定を読み取るための今後を見据えた API です。 XBOX でそれより前の GDK をターゲットとする場合、XBOX 固有のプロキシ設定経路は利用できません。この場合は、HTTP スタック内でプロキシ アドレスとポートを手動で設定してください。この記事で後述する証明書のロード手順は、XBOX 固有のプロキシ アドレス API が利用できない旧 GDK でも依然として適用されます。 PC タイトルも WinHTTP を通じてプロキシ設定を照会できますが、XBOX のフローをそのままコピーしないでください。PC では WinHttpGetProxySettingsEx は非同期であるため、WinHttpGetProxySettingsResultEx を呼び出して返されたプロキシ値を HTTP スタックにコピーする前に、処理の完了を待機してください。 libcurl を使用する例では、XBOX のプロキシ設定 API でプロキシ アドレスを解決し、それをスタックに直接渡します。セッションは WINHTTP_FLAG_ASYNC で開き、同期的な完了と ERROR_IO_PENDING の戻り値の両方を処理できるよう、ステータス コールバックを登録します。次の例は呼び出しの流れを示しています。

TLS プロバイダーの動作

Schannel ベースのスタック

スタックが Schannel ベースの TLS 動作に依存している場合、コンソールは構成済みのプロキシ証明書を自動的に適用します。この動作は、TLS プロバイダーとして Schannel を使用する libcurl ビルドにも当てはまります。

Schannel 以外のスタック

スタックが OpenSSL または他の非 Schannel TLS プロバイダーに依存している場合、有効なデバッグ ツールが必要とする証明書を明示的にロードするのはタイトル側の責任です。証明書のロード経路はリリース コードにも残しておきましょう。コンソールでは、必要に応じてプロキシ経由のトラフィックを診断できるように、関連するプロキシ デバッグ経路も RETAIL ビルドで利用できる状態を維持することを推奨します。 信頼、プロキシ、セキュア デフォルトに関するガイダンスは、Microsoft Game Development Kit タイトル向けのセキュアな Web リクエストと WebSocket のベスト プラクティス を参照してください。

プロキシ ルート証明書の見つけ方

Schannel 以外のスタックでは、デバッグ ツールに対応する証明書を明示的にロードし、その経路をリリース コードに残してください。証明書の場所とサブジェクトはツールによって異なります。たとえば、XBOX Multiplayer Analysis Tool (XMAT)CurrentUser\Root にある証明書 Xbox Multiplayer Analysis Tool Root Cert Authority を使用します。次の例では、その証明書を検索し、DER エンコード済みの証明書バイトをタイトル所有のバッファーにコピーします。
このステップの後、encodedCertificate を、TLS プロバイダーが使用する任意の証明書ロード経路に渡します。

推奨されるデバッグ ワークフロー

  1. XBOX 開発キット上の Fiddler の説明に従って、XBOX Device Portal でコンソールのプロキシ設定を構成します。
  2. 2026 年 4 月版 GDK 以降で XBOX をターゲットとしており、タイトルがプロキシ設定を直接検査する必要がある場合は、WinHttpGetProxySettingsExWinHttpProxySettingsTypeXBox を使用します。
  3. PC のコード パスが WinHTTP を通じてプロキシ設定を照会する場合は、WinHttpGetProxySettingsResultEx を呼び出して返されたプロキシ値を適用する前に、非同期処理の結果を待機します。
  4. XBOX でそれより前の GDK をターゲットとしている場合や、XBOX 固有のプロキシ設定経路を使用しないスタックを利用する場合は、タイトル内でプロキシ アドレスとポートを手動で設定します。
  5. Schannel を使用している場合は、コンソールが適用する証明書に依存できます。OpenSSL または他のスタックを使用している場合は、使用しているデバッグ ツールの証明書を証明書ストアから取得し、明示的にロードします。

関連ページ

最終更新日 2026年8月24日