会社のネットワークでは、インターネットへの通信がプロキシと呼ばれる中継機器を通ることがあります。Claude CodeはHTTPS_PROXYなどの標準の環境変数を読むので、プロキシの住所を設定すれば、この経路で動かせます。
この記事で扱うのは、会社のプロキシを経由して接続する設定です。モデルへの依頼を社内の中継サーバーへ向けるLLMゲートウェイの構築は扱いません。
先に答えをまとめると、情報システム担当にプロキシのURLと証明書の扱いを確かめ、HTTPS_PROXYを設定してからClaude Codeを起動します。通信内容を検査するプロキシで証明書エラーが出る時は、NODE_EXTRA_CA_CERTSで会社の証明書を指定します。設定が効いたかは、/statusとclaude --debugで確かめます。
この記事は、2026年11月2日に確認したAnthropicの公式資料をもとに、編集部が手順と確認の順序をまとめたものです。URLやパスは説明用の仮の値で、編集部が実際の企業プロキシで実測した結果ではありません。プロキシの製品や社内の決まりによって、必要な設定は変わります。
Claude Codeのプロキシ設定で最初に確かめる4点
設定を始める前に、次の4点を情報システム担当に確かめます。URLが分からない時は、ブラウザーのプロキシ設定にも手がかりがあります。
| 確かめること | 答えごとの設定 |
|---|---|
| プロキシのURL | HTTPS_PROXYに入れます。SOCKSプロキシには対応していません |
| プロキシの認証方式 | Basic認証ならURLに含めます。NTLMやKerberosなら、公式資料はそれに対応するLLMゲートウェイの検討を勧めています |
| 通信内容を検査するか(TLS検査) | 検査する場合は、会社の証明書がOSに入っているかを確かめ、入っていなければNODE_EXTRA_CA_CERTSを使います |
| クライアント証明書が必要か(mTLS) | 必要なら、CLAUDE_CODE_CLIENT_CERTとCLAUDE_CODE_CLIENT_KEYを設定します |

プロキシの環境変数を設定する
公式資料(英語)をもとにした設定例は次のとおりです。URLは仮の値なので、会社のプロキシのものに置き換えます。ターミナルで設定した値は起動時に一度だけ読まれるので、Claude Codeを起動する前に設定します。
# macOS、Linux、WSL
export HTTPS_PROXY=http://proxy.example.com:8080
export NO_PROXY="localhost,192.168.1.1,.example.com"
claude
# Windows PowerShell
$env:HTTPS_PROXY = 'http://proxy.example.com:8080'
claude
小文字の変数名も使えます。複数を設定した時は、https_proxy、HTTPS_PROXY、http_proxy、HTTP_PROXYの順で最初に見つかった値が使われます。NO_PROXYは、プロキシを通さない宛先の一覧で、スペース区切りでもカンマ区切りでもかまいません。例の値も仮のもので、通さない宛先がある時だけ設定します。URLにはhttp://のような形式の部分が必要です。解釈できない値だと、起動の時点で変数名を示すエラーで止まります。
Basic認証が必要な場合
URLの中に認証情報を入れます。パスワードをスクリプトに直接書くのは避け、安全な保管場所から渡すようにします。
http://<ユーザー名>:<パスワード>@<プロキシのホスト>:<ポート>
設定ファイルで固定する場合
ターミナルで設定した値は、そのターミナルの中でしか続きません。毎回同じ値を使うなら、~/.claude/settings.jsonのenvに書きます。環境変数の公式資料(英語)によると、手元のセッションなら、どのターミナルから起動しても読まれます。クラウドのセッションでは、設定ファイルのNODE_EXTRA_CA_CERTSやクライアント証明書の変数は無視されます。
{
"env": {
"HTTPS_PROXY": "http://proxy.example.com:8080"
}
}
会社の証明書も指定する時は、同じenvの中に"NODE_EXTRA_CA_CERTS": "/path/to/corporate-ca.pem"を足します。その時は、前の行の末尾にカンマが必要です。バックグラウンドのエージェントを使う時は、設定ファイルに書く形が前提です。公式資料によると、バックグラウンドのセッションを動かす常駐プロセスは最初に起動したターミナルの環境を引き継ぐため、ターミナルだけで設定した値は届かないことがあります。全員に配る時は管理設定(英語)のenvを使います。
インストールの時点で止まる場合
Claude Codeのインストールで止まる時は、HTTPS_PROXYとHTTP_PROXYを設定してからインストーラーを実行します。通信内容を検査するプロキシでは、ダウンロードのコマンド自体にも会社の証明書を指定します。macOSとLinuxの形は次のとおりです。WindowsのPowerShellのインストーラーはWindowsの証明書ストアで検証するので、会社の証明書の追加を情報システム担当に依頼します。インストールの全体はインストールの記事にまとめています。
curl --cacert /path/to/corporate-ca.pem -fsSL https://claude.ai/install.sh | bash
プロキシの証明書エラーを直す
通信内容を検査するプロキシは、自社の証明書で通信を中継します。Claude Codeがその発行元を信頼していないと、接続が証明書エラーで止まります。Claude Codeは既定で、同梱のMozillaの証明書とOSの証明書ストアの両方を信頼します。状況ごとの設定は次のとおりです。
| 状況 | 設定 |
|---|---|
| 会社の証明書がOSに入っていて、ネイティブインストーラーで入れた | 追加の設定はいりません |
| npmで入れていて、Nodeが22.15より古い | OSのストアを読めないので、NODE_EXTRA_CA_CERTSを指定します |
| 会社の証明書がOSに入っていない | NODE_EXTRA_CA_CERTS=/path/to/corporate-ca.pemを指定します。PowerShellでは$env:NODE_EXTRA_CA_CERTS = 'C:\path\to\corporate-ca.pem'です |
| 使う証明書の範囲を限定したい | CLAUDE_CODE_CERT_STOREにbundledかsystemを指定します。既定はbundled,systemです |
| プロキシが圧縮された送信本文を正しく扱えない | CLAUDE_CODE_GZIP_REQUEST_BODIES=0で圧縮を止めます |
証明書の確認そのものを止めるNODE_TLS_REJECT_UNAUTHORIZED=0は使いません。公式資料も、証明書の検証がすべて無効になるとして禁じています。エラーを消す代わりに、通信を守る仕組みまで外してしまうからです。
クライアント証明書(mTLS)を使う場合
社内の環境がクライアント証明書の認証を求める時は、次の変数を設定します。
export CLAUDE_CODE_CLIENT_CERT=/path/to/client-cert.pem
export CLAUDE_CODE_CLIENT_KEY=/path/to/client-key.pem
export CLAUDE_CODE_CLIENT_KEY_PASSPHRASE="(秘密鍵のパスフレーズ)"
パスフレーズの行は、秘密鍵を暗号化している時だけ使います。証明書を更新する時は、同じ場所のファイルを有効期限が切れる前に置き換えます。
プロキシ経由でつながったか確かめる3段階
Claude Codeは、ほとんどの設定を読み込んだ時点では検証しません。プロキシの住所や証明書のパスを間違えていても、後の通信で初めてエラーになります。そのため、次の順に確かめます。
- ターミナルから経路を確かめます。Claude Codeを起動するターミナルで、次のコマンドを実行します。URLは自分のプロキシのものに置き換え、認証が必要なら認証情報を入れたURLにします。Windows PowerShellでは
curl.exeを使います。プロキシのエラーや証明書のエラーが出なければ、プロキシまでの経路は通っています。
curl -x http://proxy.example.com:8080 -I https://api.anthropic.com
- 読み込みの記録を見ます。
claude --debugで起動すると、記録が~/.claude/debug/<session-id>.txtに保存されます。次のような行があれば、ファイルが読めています。Failed to readやFailed to loadがあれば、その理由を読みます。
CA certs: Appended extra certificates from NODE_EXTRA_CA_CERTS (/etc/ssl/certs/corp-ca.pem)
mTLS: Loaded client certificate from CLAUDE_CODE_CLIENT_CERT
mTLS: Loaded client key from CLAUDE_CODE_CLIENT_KEY
/statusの行を見ます。下の表の行を確かめた後に、短い依頼を1つ送って返事が来ることを確認します。
| 行の名前 | 読み方 |
|---|---|
| Proxy | 使っているプロキシのURL。解釈できない値は無効と表示される |
| mTLS client cert、mTLS client key | ファイルが読めた時だけ表示される。mTLSを設定しているのに行がなければ、読み込みに失敗している |
| Additional CA cert(s) | NODE_EXTRA_CA_CERTSのパスを表示するだけ。読めたかどうかはデバッグの記録で確かめる |
プロキシで許可するホスト
プロキシやファイアウォールで宛先を制限している場合は、次のホストの許可を依頼します。全件は公式の一覧(英語)で確かめてください。
| ホスト | 使われる場面 |
|---|---|
api.anthropic.com | Claudeへの依頼、機能の配信設定、テレメトリー |
claude.ai、claude.com | claude.aiのアカウントでのログイン |
platform.claude.com | Consoleのアカウントでのログイン。claude.aiのアカウントのトークン処理でも必要 |
sso.claude.com | シングルサインオンを使う組織のログイン |
downloads.claude.ai | ネイティブインストーラー、自動更新、プラグインの実行ファイル |
registry.npmjs.org | npmでの導入、プラグインの依存関係、npxで動かすMCPサーバー |
github.com | GitHubにあるプラグインのマーケットプレイスの取得 |
mcp-proxy.anthropic.com | claude.aiのMCPコネクター |
Amazon Bedrock、GoogleのAgent Platform、Microsoft Foundryを使う場合は、モデルへの通信と認証は各サービスへ向かいます。ただし、WebFetchの安全確認はskipWebFetchPreflight: trueを設定しない限り、api.anthropic.comを呼びます。DatadogのホストはAnthropicの運用データの送信先で、必須ではなく、DISABLE_TELEMETRYなどで止められます。CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICでは自動更新なども一緒に止まるので、公式資料で影響を確かめてから設定します。
プロキシのエラーを表示から見分ける
プロキシが関係する主な表示は次のとおりです。全件はエラーの公式資料(英語)で確かめてください。
| 表示 | 起きていること | 次にすること |
|---|---|---|
Couldn't connect through your proxy (ERR_PROXY_TUNNEL) | プロキシが中継を拒否した | 認証情報と、宛先のホストが許可されているかを確かめます |
Connection refused | ファイアウォールかプロキシが遮断している可能性がある | 後の説明のANTHROPIC_BASE_URLも確かめます |
Can't reach the API server — check your internet or DNS (ENOTFOUND) | 宛先の名前を解決できない | プロキシの設定漏れとDNSを確かめます |
SSL certificate verification failed (UNABLE_TO_GET_ISSUER_CERT_LOCALLY) | 信頼していない発行元の証明書で中継されている | NODE_EXTRA_CA_CERTSを指定するか、OSのストアへ追加します |
Self-signed certificate detected (SELF_SIGNED_CERT_IN_CHAIN) | 同上 | 同上 |
SSL certificate error (UNABLE_TO_GET_ISSUER_CERT_LOCALLY) | ログインや起動時の確認で出る、同じ証明書の問題 | 同上 |
Unable to connect to Anthropic services | 初回の接続確認でapi.anthropic.comかplatform.claude.comに届かなかった | 表示されたホストの許可を依頼します |
API returned an empty or malformed response (HTTP 200) | プロキシや社内のログイン画面がAPIの代わりに応答した | Response:の内容で、どの機器が答えたかを読みます |
API Error: 403 Request not allowed | ログインの後に拒否された。契約や権限の問題のほか、プロキシが割り込んでいることがある | プランや役割を確かめてから、プロキシの設定を見直します。ログインの公式資料(英語)にも説明があります |
Streaming response ended before any complete data was received | プロキシが応答の流れを加工している可能性がある | 応答の本文とヘッダーを変更せずに通すよう、担当者に依頼します |
Socket is closed | 応答の途中で接続が切れた。Windowsの企業プロキシが切ることが多い | claude updateでv2.1.214以降にし、繰り返すならプロキシの設定を見直します |
curlは成功するのにClaude Codeだけ失敗する時は、ANTHROPIC_BASE_URLを確かめます。以前試した中継先の値が残っていると、モデルへの依頼がそちらへ向かい、Connection refusedになります。ターミナルではecho $ANTHROPIC_BASE_URL(PowerShellではecho $env:ANTHROPIC_BASE_URL)で確かめ、設定ファイルのenvも見ます。不要なら消して、新しいターミナルで起動します。それでも直らない時は、公式資料が挙げる次の原因も確かめます。LinuxとWSLでは/etc/resolv.confの名前解決、macOSでは削除したVPNが残した経路、Dockerなどのコンテナ環境による通信の横取りです。
プロキシ設定で組織の制限を解除しない
プロキシの設定は、会社が認めた経路で通信を通すための作業です。つながらない時でも、制限そのものを外す方向へ進まないようにします。これは編集部の提案です。
NO_PROXY="*"で試さない。すべての宛先でプロキシを通らなくなります。会社の経路を迂回することになるので、切り分けに使う時も情報システム担当に確かめます。- 拒否された宛先は許可を依頼する。プロキシが拒否しているなら、別の経路を探すのではなく、上の表のホストを示して依頼します。
- パスワードをリポジトリに入れない。プロキシの認証情報を、共有される
.claude/settings.jsonに書かないようにします。 - クラウドのセッションは別の仕組みと考える。
host_not_allowedはクラウド環境の通信の制限で、手元のプロキシの問題ではありません。クラウド環境の設定で許可する宛先を見直します。
Claude Codeが動く時の外向きの通信を絞る設定は、プロキシの設定とは別の話です。組織で許可する宛先を決める時は、次の記事もあわせて確かめてください。
まとめ:プロキシは聞いて設定し、動きで確かめる
Claude Codeのプロキシ設定は、URLと証明書の扱いを確かめ、HTTPS_PROXYと必要ならNODE_EXTRA_CA_CERTSを設定し、/statusとclaude --debugで読み込みを確かめる流れで進めます。設定ファイルの全体はsettings.jsonの記事に、Claude Code全体の使い方はClaude Codeとはの記事にまとめています。
全社で導入する時は、許可するホスト、証明書の配り方、設定の配布方法を先に決めておくと、部署ごとの差が出にくくなります。業務に合わせた運用づくりは、PLaiのAI社員導入支援でも相談できます。





