── SSL証明書エラーとプロキシ設定の壁にぶつかりながら、なんとか動かせるようになるまでの記録
#ClaudeCode #VSCode #プロキシ #AI駆動開発 #企業向け
1. 背景と課題 ── なぜこの記事を書くのか
AI駆動開発の一環として、開発プロセスにClaude Codeを組み込もうと社内PCにインストールしてみた。自宅のネットワークではサクッと動いたのに、会社のPCで同じ手順を試したら見事に撃沈。エラーログには見慣れない文字列がずらっと並んでいた。
unable to verify the first certificate ── このエラーを見たことがある人は、十中八九「社内プロキシの洗礼」を受けたことがあるはずだ。
この記事では、社内プロキシ+SSLインスペクションというよくある企業ネットワーク環境で、Claude CodeをVS Codeで動かせるようになるまでにやったことと、ハマったポイントを実体験ベースでまとめてみる。
2. 前提環境
今回の環境はこんな感じ。
| 項目 | 内容 |
|---|---|
| OS | Windows 11 |
| エディタ | Visual Studio Code(最新版) |
| ネットワーク | 社内プロキシ経由必須(直接インターネット不可) |
| プロキシの特徴 | SSLインスペクション(通信内容の検査)あり |
| プロキシ認証 | 認証なし(Basic認証がある場合は別途対応が必要) |
📌 macOSやLinuxの場合は環境変数の設定方法が違うだけで、考え方自体は同じなので安心してほしい。
3. なぜプロキシ環境でClaude Codeが動かないのか
つまずく原因は、大きく2つある。
3-1. 直接インターネットへの通信が遮断されている
Claude CodeはAnthropicのAPIサーバー(api.anthropic.com)と通信する。会社のネットワークが直接インターネットへの通信をブロックしている場合、プロキシを経由しないとそもそも通信が届かない。
3-2. SSLインスペクションによる証明書の差し替え
多くの企業プロキシには「SSLインスペクション」という機能がある。通信内容を検査するために、一度復号してから再暗号化する仕組みだ。このとき、本来Anthropicなどのサーバーが発行した証明書が、社内CA発行の証明書にこっそり差し替えられる。
ブラウザはOSの証明書ストアを見てくれるので、社内CAが登録済みなら特に困らない。Claude CodeもデフォルトでOSの証明書ストアを参照するので、IT部門がグループポリシーなどで社内CAを配布済みの環境なら、何もしなくても通ることが多い。ただしOSストアに登録されていない場合は「知らない証明書だ」と判断され、エラーになる。
4. 解決策の全体像
やることは大きく2つ。
- プロキシ環境変数を設定してClaude Codeをインストールする(HTTPS_PROXY / HTTP_PROXY)
- VS Code自体にプロキシ設定を追加し、Claude Code拡張機能をインストールできるようにする
📌 インストール後にSSL証明書エラーが出たら、6章のトラブルシューティングを見てみてほしい。
5. 詳細手順
Step 1 ── PowerShellで環境変数を設定してClaude Codeをインストールする
まずはPowerShellのスクリプト実行ポリシーをチェック。デフォルトでは外部スクリプトの実行が禁止されているので、このままだとインストールスクリプトが実行できない。管理者権限でPowerShellを起動し、以下を実行しよう。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
RemoteSigned は、インターネットからダウンロードしたスクリプトには署名を要求しつつ、ローカルのスクリプトは署名なしで実行できるポリシー。Scope LocalMachine を指定しているのでPC全体に効いてくる。会社のポリシーで変更が制限されていることもあるので、その場合はIT部門に相談してみよう。
📌 ちなみに今の設定は Get-ExecutionPolicy -List で確認できる。
ポリシーを設定したら、次は環境変数とインストールコマンドの実行。環境変数の設定方法は用途によって2パターンに分かれる。
パターンA:とりあえずこのウィンドウだけで試す(手軽・副作用なし)
PowerShellウィンドウを閉じれば設定も消えるので、他のプロセスに影響しない。最初の動作確認にはこれが一番気楽だ。
$env:HTTP_PROXY = "http://proxy.your-company.co.jp:8080"
$env:HTTPS_PROXY = "http://proxy.your-company.co.jp:8080"
$env:http_proxy = "http://proxy.your-company.co.jp:8080"
$env:https_proxy = "http://proxy.your-company.co.jp:8080"
irm https://claude.ai/install.ps1 | iex
📌 認証付きプロキシの場合は http://ユーザーID:パスワード@proxy.example.co.jp:8080 の形式で指定する。ただしパスワードをスクリプトに直書きするのは避けたい。
パターンB:毎回自動で設定したい場合
VS Codeのターミナルでいつも有効にしたいなら、Step 2で紹介するsettings.jsonのterminal.integrated.env.windowsを使う方法のほうが副作用も少なくておすすめ。
インストールコマンドはこちら。
irm https://claude.ai/install.ps1 | iex
📌 大文字・小文字どちらの変数(HTTPS_PROXY と https_proxy)も設定しておくのがポイント。ツールによって見てくる変数が違うことがある。
インストールが終わったら、PATHを反映させるために一度PowerShellを閉じて開き直そう。
claude --version
バージョン番号が表示されればCLIのインストールは成功。
Step 2 ── VS Codeにプロキシ設定を追加する
CLIで動いても、まだ油断はできない。VS Codeの拡張機能(GUI側)は起動時に独自の設定を読み込むので、別途プロキシを教えてあげる必要がある。
【重要】ターミナル起動時だけ自動でプロキシをかける方法
さっきのSeleniumの件のように、システム全体に環境変数を設定すると思わぬところに副作用が出る。VS Codeの terminal.integrated.env.windows 設定を使えば、VS Codeのターミナルを開いたときだけ自動で環境変数が注入される。他のツールやプロセスには一切影響しない、いちばんクリーンなやり方だ。
settings.json に以下を追記しよう。
{
"http.proxy": "http://proxy.your-company.co.jp:8080",
"http.proxyStrictSSL": false,
"terminal.integrated.env.windows": {
"HTTPS_PROXY": "http://proxy.your-company.co.jp:8080",
"HTTP_PROXY": "http://proxy.your-company.co.jp:8080",
"https_proxy": "http://proxy.your-company.co.jp:8080",
"http_proxy": "http://proxy.your-company.co.jp:8080",
"NO_PROXY": "localhost,127.0.0.1,.your-company.co.jp"
}
}
これでVS Codeのターミナルでは自動的にプロキシが有効になり、それ以外(外部のPythonスクリプトなど)には影響しない。PowerShellプロファイルに書き足す必要もなくなる。
📌 macOSやLinuxならterminal.integrated.env.osx / terminal.integrated.env.linuxを使えばOK。
Ctrl + Shift + P でコマンドパレットを開いて「Preferences: Open User Settings (JSON)」を選び、settings.json に以下を追記する。
{
"http.proxy": "http://proxy.your-company.co.jp:8080",
"http.proxyStrictSSL": false
}
http.proxyStrictSSL: false にすることで、VS Codeが社内CA発行の証明書を「怪しい証明書」と判断するのを防げる。「セキュリティ下げて大丈夫?」と思うかもしれないが、社内プロキシ自体がSSL検査でセキュリティを担保してくれているので、VS Code側での証明書検証は不要と考えていい。
📌 設定を変えたら、VS Codeは一度完全に終了して再起動するのを忘れずに。
Step 3 ── VS Code上での動作確認
VS Codeのターミナル(PowerShell)で以下を実行して、環境変数がちゃんと引き継がれているか確認してみよう。
$env:HTTPS_PROXY
$env:NODE_EXTRA_CA_CERTS
claude --version
値が表示されればOK。VS Codeのターミナルにも設定がちゃんと引き継がれている。続けてClaude Codeを起動して、ステータスを確認してみる。
claude /status
IDEの項目に ✓ Connected が出れば、VS Code拡張機能との連携もばっちりだ。
6. ハマりポイントと対処法
エラー: unable to verify the first certificate
原因はだいたい NODE_EXTRA_CA_CERTS が未設定か、証明書ファイルのパスを間違えているかのどちらか。以下のコマンドで確認しよう。
$env:NODE_EXTRA_CA_CERTS
空っぽなら設定が反映されていない証拠。PowerShellセッションを開き直すか、システム環境変数として永続化しておこう。
CLIは動くがVS Code拡張機能がエラーになる
VS Codeのsettings.jsonで http.proxy と http.proxyStrictSSL: false の両方が設定されているか確認しよう。片方だけだと動かない。
| 設定状態 | 結果 |
|---|---|
| http.proxy のみ | 証明書エラーで失敗 |
| http.proxyStrictSSL: false のみ | プロキシを経由できず失敗 |
| 両方設定 | ✓ 成功 |
HTTPS_PROXYを設定したらSelenium等の別プロセスがエラーになった
HTTPS_PROXY をグローバルに設定すると、PythonのSeleniumやrequestsライブラリなど、同じ環境で動いている他のHTTPクライアントまでプロキシ経由になってしまう。ローカルサーバーや社内ツールへのリクエストがプロキシ越しになって失敗する、というのがよくあるパターンだ。
対策は NO_PROXY 環境変数で、プロキシを通さないアドレスを指定してあげること。
# プロキシをスキップするアドレスを指定する
$env:NO_PROXY = "localhost,127.0.0.1,.your-company.co.jp"
もしくは、Claude Code専用のシェルセッションだけに環境変数を設定して、Pythonスクリプトとはプロセスを分けてしまうのも手。Pythonコード側で proxies={} を明示的に渡してプロキシを無効化する方法もある。
# Pythonのrequestsでプロキシを無効化する例
import requests
response = requests.get("http://localhost:4444", proxies={"http": None, "https": None})
📌 Seleniumのwebdriverもデフォルトで環境変数のプロキシを拾ってしまう。ChromeOptionsでproxy設定を明示的にNoProxyにしておくと回避できる。
環境変数を設定したが再起動後にリセットされる
PowerShellで設定した環境変数は、そのセッションを閉じると消えてしまう。永続化したい場合は、システムのプロパティから「環境変数」を追加するか、PowerShellプロファイルに書いておこう。
# PowerShellプロファイルに追記して永続化する例
notepad $PROFILE
# 以下を追記:
$env:HTTPS_PROXY = "http://proxy.your-company.co.jp:8080"
$env:HTTP_PROXY = "http://proxy.your-company.co.jp:8080"
$env:https_proxy = "http://proxy.your-company.co.jp:8080"
$env:http_proxy = "http://proxy.your-company.co.jp:8080"
7. まとめ
社内プロキシ環境でClaude Codeを動かすためのポイントを振り返ってみる。
- プロキシ環境変数(HTTPS_PROXY / HTTP_PROXY)を大文字・小文字の両方設定する
- VS Codeのsettings.jsonにhttp.proxyとhttp.proxyStrictSSL: falseを両方追加する
- terminal.integrated.env.windowsでVS Codeターミナル限定のプロキシ設定を行い、他ツールへの影響を防ぐ
- SSL証明書エラーが出た場合のみ、社内CA証明書をNODE_EXTRA_CA_CERTSに設定する(トラブルシューティング参照)
正直、ここまでの環境構築だけで結構な時間を使ってしまったが、これもAI駆動開発の第一歩。Claude Codeがコードレビューやテスト生成、ドキュメント作成まで担ってくれるようになると、開発プロセス全体の質とスピードがガラッと変わる。最初の壁は地味に高いけど、ぜひ乗り越えてみてほしい。
参考リンク