VS Code Dev Containers: NODE_EXTRA_CA_CERTS を設定する
コンテナ内の読み取り可能な PEM ファイルを使って、VS Code のリモート Node プロセスの環境に NODE_EXTRA_CA_CERTS を設定します。
まず、承認済みの PEM CA ファイルを dev コンテナ内に配置するかマウントします。ホストのブラウザの信頼とホスト上にしかないパスは、その Node プロセスに証明書バイトを提供しません。
次に、これを VS Code と関連するサブプロセス用の既存の .devcontainer/devcontainer.json にマージします。
"remoteEnv": {
"NODE_EXTRA_CA_CERTS": "/usr/local/share/certs/corporate-ca.pem"
}パスはコンテナ内にあります。Dev Containers のライフサイクルを通じて再ビルドまたは再オープンし、該当する Node プロセスがこのパスで起動するようにします。
NODE_EXTRA_CA_CERTS は起動時に Node の CA セットを拡張します。後から process.env を変更してもそのセットは再読み込みされず、明示的な ca オプションを持つクライアントは別の信頼ソースを選択できます。
コンテナ全体の環境には、イメージまたは Dockerfile の設定、あるいは Compose サービスの環境とともに containerEnv を使用し、remoteEnv がすべてのプロセスをカバーすると仮定しないでください。
これにより NODE_TLS_REJECT_UNAUTHORIZED=0 なしで信頼を提供できます。プロキシの選択は別問題です。CA は接続をリスナーにルーティングすることも、到達不能なエンドポイントを修復することもできません。