Debootstrap armhd Buster: não foi possível obter o certificado do emissor local

Debootstrap armhd Buster: não foi possível obter o certificado do emissor local

Eu tenho um script Bash que cria um arquivo .img que será copiado em cartões SD para dispositivos ARM.

O comando debootstrap é executado para instalar um sistema Debian Stretch mínimo (armhf), então um script é executado em chroot (instalação de software, criação de usuário...).

Recentemente, como precisei atualizar no Buster, alterei o parâmetro de distribuição do comando debootstrap para "buster". No entanto, recebo um erro quando tento instalar o software com bundle install: Erro SSL: não foi possível obter o certificado do emissor local. Acontece que até curlfalha em sites HTTPS com um erro semelhante.

O que eu verifiquei

  • ca-certificates está instalado e update-ca-certificatesfoi executado.
  • O conteúdo de /etc/ssl/certs parece semelhante ao do meu computador.

O que eu tentei

  • openssl s_client -connect ifconfig.me:443falha, comunable to get local issuer certificate
  • curl -kobviamente funciona
  • curl --cacert /etc/ssl/certs/ca-certificates.crtfunciona
  • Tentei gerar um arquivo .img com Buster no amd64 curle bundle installfunciona

Como reproduzir o 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

Estou muito confuso, alguém já enfrentou esse tipo de problema?

Obrigado pela ajuda !

Responder1

Eu descobri qual era o problema.

Está relacionado ao comando openssl rehash, executado por update-ca-certificates, que deve criar links adicionais em /etc/ssl/certs.

No meu caso, ele não consegue criar "links hash" (https://www.mail-archive.com/[e-mail protegido]/msg1725724.html).

Eu tive que executar /usr/bin/c_rehash manualmente.

Pode não ser um problema quando o sistema estiver rodando no dispositivo ARM, fora do chroot. Atualizarei esta resposta assim que tentar.

informação relacionada