Tengo un script Bash que crea un archivo .img que se copiará en tarjetas SD para dispositivos ARM.
El comando debootstrap se ejecuta para instalar un sistema Debian Stretch mínimo (armhf), luego se ejecuta un script en chroot (instalación de software, creación de usuarios...).
Recientemente, como necesitaba actualizar Buster, cambié el parámetro de distribución del comando debootstrap a "buster". Sin embargo, aparece un error cuando intento instalar el software con bundle install
: Error de SSL: no se puede obtener el certificado del emisor local. Resulta que incluso curl
falla en sitios web HTTPS con un error similar.
lo que revisé
- ca-certificates está instalado y
update-ca-certificates
se ha ejecutado. - El contenido de /etc/ssl/certs parece similar al de mi computadora.
lo que intenté
openssl s_client -connect ifconfig.me:443
falla, conunable to get local issuer certificate
curl -k
obviamente funcionacurl --cacert /etc/ssl/certs/ca-certificates.crt
obras- Intenté generar un archivo .img con Buster en AMD64
curl
ybundle install
funciona.
Cómo reproducir el problema
touch buster_arm.img
truncate --size=2G buster_arm.img # 1G might not be enough
losetup --show --find --partscan --nooverlap buster_arm.img # should be /dev/loop0
parted --align optimal --script /dev/loop0 mklabel msdos mkpart primary 0% 100%
mkfs.ext4 /dev/loop0p1
mount /dev/loop0p1 /mnt/buster_arm
# replace buster by stretch and curl will work
# replace armhf by amd64 and curl will work
debootstrap --arch armhf --variant=minbase buster /mnt/buster_arm https://deb.debian.org/debian/
mount --bind /dev/ /mnt/buster_arm/dev
mount --bind /dev/pts /mnt/buster_arm/dev/pts
cp "$(command -v qemu-arm-static)" /mnt/buster_arm/usr/bin/qemu-arm-static # bypass architecture (my computer is not on armhf)
chroot /mnt/buster_arm /bin/bash
apt-get update && apt-get install ca-certificates curl apt-transport-https && update-ca-certificate
curl https://google.fr
Estoy realmente confundido, ¿alguien se ha enfrentado alguna vez a este tipo de problema?
Gracias por su ayuda !
Respuesta1
Descubrí cuál era el problema.
Está relacionado con el comando openssl rehash, realizado por update-ca-certificates, que se supone que crea enlaces adicionales en /etc/ssl/certs.
En mi caso, no logra crear "enlaces hash" (https://www.mail-archive.com/[correo electrónico protegido]/msg1725724.html).
Tuve que ejecutar /usr/bin/c_rehash manualmente.
Puede que no sea un problema una vez que el sistema se esté ejecutando en el dispositivo ARM, fuera del chroot. Actualizaré esta respuesta tan pronto como lo intente.