一部の企業ネットワークでは、HTTPS(Zscalerなどの製品)をインターセプトし、会社のCAで再署名することがあります。そのCAはラップトップでは信頼されていますが、生成されたローカル開発イメージ内では信頼されていないため、イメージをビルドする中に uv / npm が UnknownIssuer などのTLS信頼エラーで失敗します。
会社のCAを提供してください
ルートインターセプトCAをPEMとしてエクスポートします。中間証明書はチェーンが不完全な場合にのみ役立ちます。トラストアンカーはルートです。一般的なソース:
OSの信頼ストア(Keychain /
certmgr//etc/ssl/certs)ITチームがすでにドキュメント化しているエクスポート
そのファイルに対してCLIを指定します。
agentengine dev up --ca-bundle /path/to/corp-root.pem
AGENTENGINE_CA_BUNDLE は、プロセス環境において同等です。ワークスペース .env の値は無視されるため、クローンされたリポジトリは CA をインストールできません。
CLIはPEM(証明書のみ、秘密キーは不可)を検証し、~/.agentengine/ca-bundles/ の下のワークスペースごとにレコードし、パッケージのインストール**前**に承認されたコピーを生成されたイメージに埋め込みます。そこで、Amazon Linuxの信頼バンドルにマージされます。ビルドするは書き込み可能なワークスペースから何も読み取らないため、実行間のリポジトリやコンテナの変更によって信頼される内容が変更されることはありません。リポジトリによって出荷された.agentengine/ca-bundle.crtは読み取られることはなく、警告が表示されるだけです。
記録されたCAは、ビルドする時だけでなくランタイムにも適用されます。生成されたイメージは、標準のCA環境変数(SSL_CERT_FILE、REQUESTS_CA_BUNDLE、CURL_CA_BUNDLE、NODE_EXTRA_CA_CERTS、およびuvのsystem-certモード)をマージされたバンドルに点として向けます。そのため、インターセプトプロキシを介したエージェント自身のHTTPS呼び出しも機能します。これらの変数(およびディレクトリセレクターの兄弟であるSSL_CERT_DIR)は、ローカルスタックのCLIによって所有されています。ワークスペース.env内のこれらの変数の値は開発コンテナに渡されないため、クローンされたリポジトリはワーカーのTLSをそれが提供する証明書に向けることができません。別のCA(プライベートレジストリのCA、例)が必要な場合は、--ca-bundleに渡すバンドルに追加してください。
後の agentengine dev up 実行では、同じマシン上のレコードを再利用します。別のマシンやチェックアウトでは継承されないため、そこで再度フラグを渡す必要があります。--clear-ca-bundle はレコードを除き、CA なしで再生成します。
.agentengine/Dockerfile.dev は手動で編集しないでください。次の agentengine dev up で再生成されます。
この変更の影響を受けないもの
CAを提供しない開発者は、これまでと同じイメージビルドを取得します。
--insecureフラグはありません。信頼されたCAがないTLS障害でも、信頼の問題が報告されます。agentengineバイナリ自体(例:AGENTENGINE_IMAGE_SOURCE=custom)が使用する OS の信頼を保存 (する)場所は別個のものです。その CA をホストする側にインストールするには、custom-artifact-source.md. のドキュメントを参照してください。