Debootstrap armhd Buster: невозможно получить сертификат локального эмитента

Debootstrap armhd Buster: невозможно получить сертификат локального эмитента

У меня есть скрипт Bash, который создает файл .img, который будет скопирован на SD-карты для устройств ARM.

Команда debootstrap выполняется для установки минимальной системы Debian Stretch (armhf), затем в chroot выполняется скрипт (установка программного обеспечения, создание пользователя...).

Недавно, когда мне нужно было обновиться на Buster, я изменил параметр распределения команды debootstrap на "buster". Однако я получаю ошибку при попытке установить программное обеспечение с bundle install: SSL error : unable to get local issuer certificate. Оказывается, это происходит даже curlна HTTPS-сайтах с похожей ошибкой.

Что я проверил

  • ca-certificates установлен и update-ca-certificatesзапущен.
  • Содержимое /etc/ssl/certs похоже на то, что есть на моем компьютере.

Что я пробовал

  • openssl s_client -connect ifconfig.me:443терпит неудачу, сunable to get local issuer certificate
  • curl -kочевидно работает
  • curl --cacert /etc/ssl/certs/ca-certificates.crtработает
  • Я попробовал сгенерировать файл .img с помощью Buster на amd64, curlи bundle installэто сработало

Как воспроизвести проблему

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

Я действительно в замешательстве, кто-нибудь сталкивался с такой проблемой?

Спасибо за помощь !

решение1

Я выяснил, в чем проблема.

Это связано с командой openssl rehash, выполняемой update-ca-certificates, которая должна создавать дополнительные ссылки в /etc/ssl/certs.

В моем случае не удается создать «хэш-ссылки» (https://www.mail-archive.com/[email protected]/msg1725724.html).

Мне пришлось вручную запустить /usr/bin/c_rehash.

Это может не быть проблемой, если система работает на устройстве ARM, вне chroot. Я обновлю этот ответ, как только попробую.

Связанный контент