Cursor 企業ネットワークプロキシ設定:HTTP_PROXY から証明書インポートまでの完全ガイド
"Cursor 公式の企業ネットワーク設定ドキュメント。環境変数、settings.json、起動引数の 3 つのプロキシ設定方法を説明"
"Cursor フォーラムでの HTTP/2 リクエストがプロキシ設定を通らない問題とその解決策"
Send をクリックすると、Cursor の Agent パネルに Network error が表示される。グローバルプロキシは有効なのに、なぜ接続できないのか?
答えは Electron v25+ のネットワークスタックにあります。Cursor と VS Code、OS はそれぞれ別のプロキシ設定を使い、互いに共有しません。この記事では、企業ネットワークでのプロキシ設定を最初から整理します。HTTP_PROXY 環境変数、settings.json のプロキシ設定、HTTP/2 プロトコルの互換性、SSL 証明書のインポート、Anygress 透過プロキシまで。Windows、Mac、WSL2 の 3 環境をカバーします。
なぜ Cursor はシステムプロキシを継承しないのか?
Cursor は Electron v25+ で構築されています。Electron のネットワークスタックは Chrome と同じで、OS や親プロセスのプロキシ設定を自動継承しません。VS Code はシステムプロキシを読み取れますが、Cursor は独自の設定が必要です。
環境変数の扱いも厄介です。ターミナルで export HTTP_PROXY=... しても、Dock やデスクトップアイコンから Cursor を起動すれば、その変数は渡りません。同じターミナルから cursor コマンドで起動した場合だけ有効になります。
そのため、企業ネットワークでは Cursor の settings.json を直接編集するのが最も確実です。
公式ドキュメントの見解
Cursor の Network Configuration によると、企業環境では 3 つのプロキシ設定方法があります。
- 環境変数:
HTTP_PROXY、HTTPS_PROXY、NO_PROXY(ターミナル起動時のみ有効) - settings.json:
http.proxy、http.proxySupport、http.proxyStrictSSL - 起動引数:
--proxy-server、--proxy-auto-detect、--disable-http2
それぞれ適した場面があり、後述で順に解説します。
HTTP_PROXY 環境変数の設定
環境変数は最も軽量な方法ですが、Cursor を設定済みのターミナルから起動する必要があります。
Windows PowerShell
# プロキシを設定(認証付き)
$env:HTTP_PROXY = "http://username:[email protected]:8080"
$env:HTTPS_PROXY = "http://username:[email protected]:8080"
# ローカルアドレスはプロキシを経由しない
$env:NO_PROXY = "localhost,127.0.0.1,.internal.corp"
# 同じターミナルから Cursor を起動
cursor
macOS / Linux
# Bash/Zsh
export HTTP_PROXY="http://username:[email protected]:8080"
export HTTPS_PROXY="http://username:[email protected]:8080"
export NO_PROXY="localhost,127.0.0.1,.internal.corp"
# Cursor を起動
cursor
WSL2 の特殊な扱い
WSL2 には独立した仮想 NIC があり、Windows ホストと同一サブネットにいません。Windows のプロキシ設定は WSL2 内に自動同期されません。
graftcp で透過 TCP プロキシを行う方法があります。
# graftcp をインストール
sudo apt install graftcp
# プロキシアドレスを設定(graftcp.conf)
proxy_addr = "192.168.1.100:7890" # Windows ホストのプロキシアドレス
# graftcp で Cursor を起動
graftcp cursor
よくある落とし穴:
- Dock / デスクトップアイコンから起動 → 環境変数が効かない
HTTP_PROXYだけ設定してHTTPS_PROXYを忘れる → Cursor API リクエスト(すべて HTTPS)がプロキシを通らないNO_PROXYに.internal.corpを入れ忘れる → イントラネット通信までプロキシ経由になり、逆に遅くなる
毎回ターミナルから起動するのが面倒なら、settings.json の方が楽です。
settings.json によるプロキシ設定(推奨)
Cursor を開き、Cmd+Shift+P(Mac)または Ctrl+Shift+P(Windows)を押して Preferences: Open User Settings (JSON) を入力します。
settings.json に次の項目を追加します。
{
"http.proxy": "http://username:[email protected]:8080",
"http.proxySupport": "override",
"http.proxyStrictSSL": false,
"http.noProxy": ["localhost", "127.0.0.1", "*.internal.corp"],
"cursor.general.disableHttp2": true,
"cursor.general.disableHttp1SSE": true
}
各項目の意味:
| フィールド | 役割 |
|---|---|
http.proxy | プロキシサーバーのアドレス。http:// と socks5:// に対応 |
http.proxySupport | "override" で強制プロキシ、"on" は直接接続不可時のみプロキシ |
http.proxyStrictSSL | 企業プロキシは自己署名証明書が多いため、false で証明書検証エラーを回避 |
http.noProxy | ローカルアドレスをプロキシから除外し、イントラネットの遅延を防ぐ |
cursor.general.disableHttp2 | 企業プロキシが HTTP/2 非対応の場合は必須 |
cursor.general.disableHttp1SSE | 一部プロキシは SSE 長接続非対応。無効化すると短いポーリングに切り替わる |
再起動が必要。
settings.json を変更したら、Cursor を完全に終了してから再度起動してください。ウィンドウの再読み込み(Cmd+R)ではネットワーク設定は再読み込みされません。
Windows ショートカットの起動引数:
settings.json を触りたくない場合、ショートカットに引数を追加できます。
cursor.exe --proxy-server="http://proxy.company.com:8080" --proxy-auto-detect --disable-http2
settings.json と同等の効果があり、起動のたびに適用されます。
HTTP/2 プロトコルの非互換と対処
Cursor の Agent 機能は HTTP/2 の双方向ストリーミングに依存しています。リアルタイムチャット、コード補完、多ターン対話は、HTTP/2 の長接続とストリーム配信が前提です。
問題は、多くの企業プロキシが HTTP/2 に対応していないことです。
Zscaler や Netskope などの SSL インスペクション系プロキシは、HTTP/1.1 のみを処理します。Cursor が送る HTTP/2 リクエストは、プロキシ側で切断されたり、文字化けしたり、タイムアウトしたりします。
症状:
- Agent パネルが
Thinking...のまま止まる - コード補完がたまに動き、たまにエラーになる
- Chat モードは正常、Agent モードだけエラーだらけ
対処法:HTTP/2 を無効化し、HTTP/1.1 SSE にダウングレードする。
{
"cursor.general.disableHttp2": true
}
または起動引数:
cursor --disable-http2
無効化後、Cursor は HTTP/1.1 の Server-Sent Events(SSE)でストリーミングします。SSE は一方向で HTTP/2 双方向ほど効率的ではありませんが、互換性は高いです。
補足:--disable-http2 と settings.json の disableHttp2 が両方ある場合、起動引数が優先されます。HTTP/2 を確実に無効にしたいなら、両方設定しておくと安心です。
Cursor Forum の報告によると、この方法で多くの企業ユーザーが Agent 問題を解決しています。Cursor http/2 requests don’t go through proxy setting では、HTTP/2 を無効化したあと Agent が正常に戻った、というフィードバックがあります。
SSL 証明書のインポート(企業 MITM 検査)
企業プロキシが SSL 復号を行うと、元の証明書をプロキシ自身の証明書に差し替えます。Netskope や Zscaler にはこの機能があります。
Cursor が cursor.com や api2.cursor.sh に接続すると、Let’s Encrypt や DigiCert ではなく、企業プロキシが署名した証明書が返ります。検証に失敗して接続が切れます。
症状:
TLS handshake timeoutcertificate signature failure- Agent パネルに
CERT_AUTHORITY_INVALID
方法 1:企業ルート証明書をシステム証明書ストアにインポート(Windows)
Win+Rを押し、certmgr.mscを入力- Trusted Root Certification Authorities → Certificates を展開
- 右クリック → All Tasks → Import
- 企業ルート証明書ファイル(
.cerまたは.pem)を選択 - 完了後、Cursor を再起動
OS が企業証明書を信頼すれば、Cursor も信頼します。
方法 2:環境変数で証明書を指定(推奨)
Cursor は SSL_CERT_FILE と SSL_CERT_DIR 環境変数に対応しています。
# 単一の証明書
export SSL_CERT_FILE=/path/to/company-root-ca.pem
cursor
# 証明書ディレクトリ
export SSL_CERT_DIR=/etc/ssl/certs
cursor
システム証明書ストアを変更せず、Cursor だけに適用できる柔軟な方法です。
方法 3:SSL 厳密検証をオフにする(非推奨)
{
"http.proxyStrictSSL": false
}
証明書検証を回避できますが、セキュリティは下がります。テスト環境向けで、本番では非推奨です。
Mac / Linux での証明書インポート:
# Debian/Ubuntu
sudo cp company-root-ca.pem /usr/local/share/ca-certificates/
sudo update-ca-certificates
# macOS
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain company-root-ca.pem
インポート後、Cursor を再起動してください。
Anygress と cursor-api-proxy(上級設定)
企業ネットワーク、リモートサーバー、プライベートネットワークなど、標準プロキシ設定だけでは足りない場面があります。オープンソースの cursor-api-proxy(GitHub: anyrobert/cursor-api-proxy)が、このようなケース向けです。
仕組み:
cursor-api-proxy はローカルでプロキシサービスを立て、Cursor の API リクエストを実サーバーへ転送します。途中で TLS 証明書の差し替え、Tailscale による NAT 越え、API キーの注入などが可能です。
設定例:
# リポジトリをクローン
git clone https://github.com/anyrobert/cursor-api-proxy
cd cursor-api-proxy
# 環境変数を設定
export CURSOR_BRIDGE_TLS_CERT=./macbook.tail4048eb.ts.net.crt
export CURSOR_BRIDGE_TLS_KEY=./macbook.tail4048eb.ts.net.key
export CURSOR_BRIDGE_API_KEY=your-secret-key
export CURSOR_PROXY_URL=http://127.0.0.1:8765
# 起動(Tailscale TLS 付き)
npm start -- --tailscale
Cursor 側では、このサービスをプロキシ先に指定します。
{
"http.proxy": "http://127.0.0.1:8765"
}
向いている場面:
- 社内ネットワークで
cursor.comへの直接接続が禁止されている - リモートサーバーにパブリックインターネット出口がなく、Tailscale 経由が必要
- リクエストに統一 API Key を注入したい(複数ユーザー共有)
- プライベートデプロイで API を内部ゲートウェイ経由にしたい
標準プロキシより複雑ですが、柔軟性は高い。ある程度の運用スキルがあるチーム向けです。
まとめ
企業ネットワークで Cursor のプロキシを設定する際は、次の順で確認してください。
- まず settings.json —
http.proxy+http.proxySupport: "override" - HTTP/2 を無効化 — 企業プロキシ非対応なら
disableHttp2: true - 証明書を確認 —
TLS handshake timeoutやCERT_AUTHORITY_INVALIDなら企業ルート証明書をインポート - 複雑な場面は cursor-api-proxy — リモートサーバー、プライベートネットワーク、Tailscale 経由
よくあるエラーと対処:
| エラーメッセージ | 原因 | 対処 |
|---|---|---|
Network error | プロキシ未設定または未反映 | settings.json を確認 + Cursor を再起動 |
Connection refused | プロキシアドレス誤り、またはプロキシサービス未起動 | http.proxy のアドレスを確認 |
TLS handshake timeout | SSL 証明書の不一致 | 企業ルート証明書をインポート、または proxyStrictSSL: false |
| Agent がフリーズ | HTTP/2 非互換 | disableHttp2: true を設定 |
設定後はウィンドウの再読み込みではなく、Cursor を完全に再起動してください。
Cursor 企業ネットワークプロキシ設定フロー
環境変数から証明書インポートまでの完全な設定手順
⏱️ 目安時間: 15 分
- 1
ステップ1: settings.json でプロキシを設定
Cursor を開き、Cmd+Shift+P(Mac)または Ctrl+Shift+P(Windows)を押して Preferences: Open User Settings (JSON) を入力し、http.proxy、http.proxySupport: "override"、http.proxyStrictSSL: false などの項目を追加する - 2
ステップ2: HTTP/2 プロトコルを無効化
settings.json に cursor.general.disableHttp2: true を追加するか、起動引数に --disable-http2 を付けて、企業プロキシが HTTP/2 非対応で Agent がフリーズする問題を解消する - 3
ステップ3: SSL 証明書の問題に対処
TLS handshake timeout や CERT_AUTHORITY_INVALID が出たら、企業ルート証明書をシステム証明書ストアにインポートする(Windows は certmgr.msc、Mac/Linux は security または update-ca-certificates)。一時的には proxyStrictSSL: false も可 - 4
ステップ4: Cursor を再起動して接続を確認
Cursor を完全に終了してから再度起動する(ウィンドウの再読み込みではない)。Agent が正常か確認し、問題が続く場合はプロキシのアドレスとポートを見直す
FAQ
なぜ Cursor はシステムプロキシを継承しないのか?
HTTP_PROXY 環境変数が効かないのはなぜ?
Agent が Thinking のまま止まる場合は?
証明書の問題かプロキシの問題か、どう見分ける?
cursor-api-proxy はどんな場面向け?
4分で読めます · 公開日: 2026年5月29日 · 更新日: 2026年6月1日
関連記事
Cursor Agent モード完全ガイド:3 ステップで始める自動化プログラミング(2026 年最新)
Cursor Agent モード完全ガイド:3 ステップで始める自動化プログラミング(2026 年最新)
Cursor の @Codebase、@Docs、@Files — どれを使う?実践シーン別の判断ガイド
Cursor の @Codebase、@Docs、@Files — どれを使う?実践シーン別の判断ガイド
Cursor 大規模プロジェクトのインデックス管理:診断から再構築までの完全ガイド
コメント
GitHubアカウントでログインしてコメントできます