背景
昨日までclaude code使えてたのに、なぜかこんなエラーが発生するようになった。原因と対策を実施して使えるようになったので、その履歴です。
環境
macOS Sequoia 15.3.1
node.js 22.14.0
claude code v1.0.126
nvm 0.39.0
claude codeはネイティブバイナリインストール。
起動時の事象
ログインすらできない。
原因調査
claude desktopと相談しながら1つずつ調査。
SSL証明書が問題ないかを確認
# SSL証明書の状態確認
openssl s_client -connect api.anthropic.com:443 -showcerts
問題なさそう。これもclaude desktopへ投げながら。
node.jsの証明書検証問題
claude codeは内部でnode.jsを利用している。
# Node.jsのTLS検証を無効化してClaude Codeをテスト
export NODE_TLS_REJECT_UNAUTHORIZED=0
claude
起動した。
node.jsの証明書の問題で間違いなさそう。
nvmで利用しているバージョンの確認
nvmはnode.jsのパッケージ管理ツール。これを利用しているので一応想定通りか確認。
# 現在のNode.jsバージョンを確認
node --version
# nvmで現在使用中のバージョンを確認
nvm current
# インストール済みのNode.jsバージョン一覧
nvm list
対策
以下の通り。claude コマンドを実行するときは、前のフェーズで環境変数のコマンド実施ているセッションは避けて、別セッションのターミナルを起動して実施することで、正しく修正できていることを確認。
# 最新のLTSバージョン(v22.20.0)をインストール
nvm install lts/jod
# インストールしたLTSバージョンに切り替え
nvm use lts/jod
# バージョンが更新されたことを確認
node --version # v22.20.0
# デフォルトバージョンとして設定
nvm alias default lts/jod
# Claude Codeが正常動作することを確認
claude
最後に
新しいLTSバージョンには最新の証明書ストアとSSL/TLS修正が含まれていて、22.14.0だと動かず、22.20.0だと動いたという考察。ただ、ネイティブバイナリインストールしてるのに、node.jsのバージョンに引っ張られてるということらしい。
もし同じ現象の人がいれば参考にしてください。
