首先把已批准的 PEM CA 文件放入或挂载到 dev container 内。宿主机浏览器的信任以及仅存在于宿主机上的路径,都不会把证书字节提供给容器内的 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 选项的客户端可以选择不同的信任来源。

如果需要对整个容器生效,应使用 containerEnv 配合 image/Dockerfile 配置或 Compose 服务环境,而不是假设 remoteEnv 覆盖所有进程。

这样无需 NODE_TLS_REJECT_UNAUTHORIZED=0 即可提供信任。代理选择仍然独立:CA 既不能把连接路由到监听端,也不能修复无法访问的端点。

相关文章