# GitHub Copilot のネットワーク設定

HTTP プロキシを使用して GitHub Copilot に接続し、カスタム証明書を使用できます。

GitHub Copilotのネットワーク設定を使用すると、HTTP プロキシを介してGitHubに接続し、カスタム証明書を使用できます。

## Copilot のプロキシ設定

既定では、 Copilot は、セキュリティで保護された HTTPS 接続を介して、環境から直接 GitHubのサーバーに接続します。
Copilotを使用するために、必ずしも追加のネットワーク設定を構成する必要はありません。

一部のネットワークでは、HTTP プロキシ サーバーを使用してインターネット トラフィックをインターセプトしてから、目的の場所に送信します。 企業では、多くの場合、HTTP プロキシを使用して疑わしいトラフィックを検出したり、ネットワークに入るコンテンツを制限したりします。 企業ネットワークで作業している場合は、HTTP プロキシ経由で接続するように Copilot を構成することが必要になる場合があります。

> \[!NOTE] プロキシ サーバーまたはファイアウォールの管理者は、 Copilot が期待どおりに動作するようにネットワーク設定を構成する必要もあります。 「[Copilot 許可リスト リファレンス](/ja/copilot/reference/copilot-allowlist-reference) を参照してください。

Copilot では、基本的な HTTP プロキシのセットアップがサポートされています。 プロキシに対して認証する必要がある場合、 Copilot は Kerberos による基本認証または認証をサポートします。 プロキシ URL が開始 `https://`された場合、プロキシは現在サポートされていません。

エディターでプロキシを直接構成しない場合、 Copilot は、優先度が最も高いものから最も低いものまで、次のいずれかの環境変数にプロキシ URL が設定されているかどうかを確認します。

* `HTTPS_PROXY`
* `https_proxy`
* `HTTP_PROXY`
* `http_proxy`

> \[!NOTE] これらの変数のいずれかを使用して、標準 HTTP プロキシの URL を格納できます。 標準的な使用では、`http` これらの変数の一部と `https` 一部は、プロキシ自体の URL ではなく、行われる要求の種類を参照します。
> Copilot は、この規則に従わず、HTTP 要求と HTTPS 要求の両方のプロキシとして、優先度が最も高い変数に格納されている URL を使用します。

### Kerberos を使用した認証

Kerberos は、ユーザーとサービスが相互に ID を証明できるようにする認証プロトコルです。 ユーザーが正常に認証されると、認証サービスは、一定期間サービスにaccessを提供するチケットをユーザーに付与します。 ネットワーク管理者は、より安全で暗号化されていない認証情報を送信する必要がないため、ベーシック認証よりもKerberosを好むかもしれません。

GitHub Copilot は、Kerberos を使用したプロキシへの認証をサポートします。 Kerberos を使用するには、お使いのコンピューターにインストールされているオペレーティング システムに適切な krb5 ライブラリと、プロキシ サービスのアクティブ なチケットが必要です (`kinit` コマンドを使用して手動 で作成するか、別のアプリケーションによって作成されます)。 この `klist` コマンドを 使用して、プロキシ サービスのチケットがあるかどうかを確認できます。

Kerberos はサービスプリンシパル名（SPN）を使ってサービス・インスタンスを一意に識別します。 既定では、SPN はプロキシ URL から派生します。 たとえば、プロキシ URL が `http://proxy.example.com:3128` である場合、SPN は `HTTP/proxy.example.com` です。

プロキシの既定の SPN が正しくない場合は、 VS Code および JetBrains IDE で SPN をオーバーライドできます。 現在、 Visual Studioで既定の SPN をオーバーライドすることはできません。 ただし、環境変数 `AGENT_KERBEROS_SERVICE_PRINCIPAL` を使用して、 VS Code IDE と JetBrains IDE の SPN をオーバーライドできます。

## カスタム証明書

Copilot は、ユーザーのマシンにインストールされているカスタム SSL 証明書を読み取ることができます。 これにより、プロキシ サーバーを Copilotのセキュリティで保護された接続の目的の受信者として識別できるため、ネットワーク トラフィックを検査できます。 カスタム証明書がないと、HTTP プロキシを使用して Copilotの接続を監視、ルーティング、終了できますが、トラフィックの内容を検査することはできません。

Copilot は、オペレーティング システムの信頼ストアから証明書を読み取ります。 また、標準の Node.js 環境変数 `NODE_EXTRA_CA_CERTS`で指定されたファイルから追加の証明書を読み取ります。 詳細については、「[Node.js に関するドキュメント](https://nodejs.org/docs/latest-v18.x/api/cli.html#node_extra_ca_certsfile)」を参照してください。

Copilot は、プロキシがユーザーのマシンで直接構成されているかどうかに関係なく、証明書を読み取ることができます。 これにより、 Copilot は透過的なプロキシや Zscaler などのセットアップをサポートできます。

## 次のステップ

エディターでネットワーク設定を構成する方法については、「[GitHub Copilot のネットワーク設定の構成](/ja/copilot/how-tos/configure-personal-settings/configure-network-settings)を参照してください。