会社のネットワークでは、インターネットへの通信がプロキシと呼ばれる中継機器を通ることがあります。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が分からない時は、ブラウザーのプロキシ設定にも手がかりがあります。

確かめること答えごとの設定
プロキシのURLHTTPS_PROXYに入れます。SOCKSプロキシには対応していません
プロキシの認証方式Basic認証ならURLに含めます。NTLMやKerberosなら、公式資料はそれに対応するLLMゲートウェイの検討を勧めています
通信内容を検査するか(TLS検査)検査する場合は、会社の証明書がOSに入っているかを確かめ、入っていなければNODE_EXTRA_CA_CERTSを使います
クライアント証明書が必要か(mTLS)必要なら、CLAUDE_CODE_CLIENT_CERTとCLAUDE_CODE_CLIENT_KEYを設定します
プロキシで接続を通す順序です。情報システム担当にURLと証明書を確かめ、HTTPS_PROXYと、必要ならNODE_EXTRA_CA_CERTSを設定します。/statusとclaude --debugで確かめ、残るエラーを原因で切り分けます。
図:プロキシで接続を通す順序です。情報システム担当にURLと証明書を確かめ、HTTPS_PROXYと、必要ならNODE_EXTRA_CA_CERTSを設定します。/statusとclaude --debugで確かめ、残るエラーを原因で切り分けます。編集部の説明図です。製品の実画面ではありません。画像を開くと拡大できます。

プロキシの環境変数を設定する

公式資料(英語)をもとにした設定例は次のとおりです。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は、ほとんどの設定を読み込んだ時点では検証しません。プロキシの住所や証明書のパスを間違えていても、後の通信で初めてエラーになります。そのため、次の順に確かめます。

  1. ターミナルから経路を確かめます。Claude Codeを起動するターミナルで、次のコマンドを実行します。URLは自分のプロキシのものに置き換え、認証が必要なら認証情報を入れたURLにします。Windows PowerShellではcurl.exeを使います。プロキシのエラーや証明書のエラーが出なければ、プロキシまでの経路は通っています。
curl -x http://proxy.example.com:8080 -I https://api.anthropic.com
  1. 読み込みの記録を見ます。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
  1. /statusの行を見ます。下の表の行を確かめた後に、短い依頼を1つ送って返事が来ることを確認します。
行の名前読み方
Proxy使っているプロキシのURL。解釈できない値は無効と表示される
mTLS client cert、mTLS client keyファイルが読めた時だけ表示される。mTLSを設定しているのに行がなければ、読み込みに失敗している
Additional CA cert(s)NODE_EXTRA_CA_CERTSのパスを表示するだけ。読めたかどうかはデバッグの記録で確かめる

プロキシで許可するホスト

プロキシやファイアウォールで宛先を制限している場合は、次のホストの許可を依頼します。全件は公式の一覧(英語)で確かめてください。

ホスト使われる場面
api.anthropic.comClaudeへの依頼、機能の配信設定、テレメトリー
claude.ai、claude.comclaude.aiのアカウントでのログイン
platform.claude.comConsoleのアカウントでのログイン。claude.aiのアカウントのトークン処理でも必要
sso.claude.comシングルサインオンを使う組織のログイン
downloads.claude.aiネイティブインストーラー、自動更新、プラグインの実行ファイル
registry.npmjs.orgnpmでの導入、プラグインの依存関係、npxで動かすMCPサーバー
github.comGitHubにあるプラグインのマーケットプレイスの取得
mcp-proxy.anthropic.comclaude.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社員導入支援でも相談できます。