まず、承認済みの 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 は接続をリスナーにルーティングすることも、到達不能なエンドポイントを修復することもできません。

関連記事