From fd20e38d38af7e7740501bc326b718570087b826 Mon Sep 17 00:00:00 2001 From: Sergio Date: Thu, 11 Jun 2026 18:22:04 +0000 Subject: [PATCH] bootstrap: CA bundle para el TLS de cargo vendor en la VM MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Con red, `cargo vendor` resolvió crates.io (DNS OK) pero el TLS falló: la VM no tenía CA bundle en /etc/ssl/certs/ca-certificates.crt ([77] SSL CA cert). El toolchain trae el bundle de Alpine; rebuild-stage1 lo copia a la ruta estándar y exporta SSL_CERT_FILE/CURL_CA_BUNDLE/GIT_SSL_CAINFO (cargo usa libcurl/openssl según el build). Penúltimo eslabón del vendoring Rust offline-asistido. Co-Authored-By: Claude Opus 4.8 (1M context) --- crates/hammer-bootstrap/src/lib.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/crates/hammer-bootstrap/src/lib.rs b/crates/hammer-bootstrap/src/lib.rs index 82dd6a5b..24369501 100644 --- a/crates/hammer-bootstrap/src/lib.rs +++ b/crates/hammer-bootstrap/src/lib.rs @@ -522,6 +522,13 @@ if ip link show eth0 >/dev/null 2>&1; then ip route add default via 10.0.2.2 2>/dev/null || true printf 'nameserver 10.0.2.3\n' > /etc/resolv.conf echo ">> red eth0: $(ip -4 -o addr show eth0 2>/dev/null | grep -o 'inet [0-9.]*' || echo down)" + # CA bundle para el TLS de cargo/curl/git (crates.io). El toolchain trae el bundle de Alpine; + # lo exponemos en la ruta estándar y por env (cargo usa libcurl/openssl según el build). + mkdir -p /etc/ssl/certs + cp -f /toolchain/etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt 2>/dev/null || true + export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt + export CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt + export GIT_SSL_CAINFO=/etc/ssl/certs/ca-certificates.crt fi # NOTA: el initramfs debe empaquetarse con `cpio --owner=root:root`. Si los ficheros del toolchain # quedan con el uid del que armó el builder (p. ej. 1000), ese uid no está mapeado en el userns de