نخست فایل PEM CA تأییدشده را درون کانتینر توسعه قرار دهید یا سوار کنید. اعتماد مرورگر میزبان و مسیری که فقط روی میزبان وجود دارد، بایت‌های گواهی را به فرآیند Node آن نمی‌دهند.

سپس این را در .devcontainer/devcontainer.json موجود برای VS Code و زیرفرآیندهای مرتبط ادغام کنید:

"remoteEnv": {
  "NODE_EXTRA_CA_CERTS": "/usr/local/share/certs/corporate-ca.pem"
}

مسیر درون کانتینر است. از طریق چرخه عمر Dev Containers دوباره بسازید یا باز کنید تا فرآیند Node مربوطه با آن آغاز شود.

NODE_EXTRA_CA_CERTS هنگام راه‌اندازی مجموعه CA مربوط به Node را گسترش می‌دهد. تغییر process.env پس از آن آن مجموعه را دوباره بارگذاری نمی‌کند و کلاینتی با گزینه صریح ca می‌تواند منبع اعتماد دیگری انتخاب کند.

برای محیطی در سطح کل کانتینر، از containerEnv همراه با پیکربندی تصویر یا Dockerfile، یا محیط سرویس Compose استفاده کنید، نه اینکه فرض کنید remoteEnv همه فرآیندها را پوشش می‌دهد.

این اعتماد را بدون NODE_TLS_REJECT_UNAUTHORIZED=0 فراهم می‌کند. انتخاب پروکسی جدا می‌ماند: CA نمی‌تواند اتصالی را به شنونده مسیریابی کند یا نقطه پایانی غیرقابل‌دسترس را ترمیم کند.

مقالات مرتبط