Debootstrap armhd Buster: 로컬 발급자 인증서를 얻을 수 없습니다.

Debootstrap armhd Buster: 로컬 발급자 인증서를 얻을 수 없습니다.

ARM 장치용 SD 카드에 복사될 .img 파일을 생성하는 Bash 스크립트가 있습니다.

최소 Debian Stretch 시스템(armhf)을 설치하기 위해 debootstrap 명령이 실행된 다음 chroot에서 스크립트가 실행됩니다(소프트웨어 설치, 사용자 생성...).

최근 Buster를 업그레이드해야 해서 debootstrap 명령 배포 매개변수를 "buster"로 변경했습니다. 그러나 다음과 같은 소프트웨어를 설치하려고 하면 오류가 발생합니다 bundle install. SSL 오류: 로컬 발급자 인증서를 얻을 수 없습니다. curl비슷한 오류가 발생하여 HTTPS 웹사이트에서도 실패하는 것으로 나타났습니다 .

내가 확인한 것

  • ca 인증서가 설치되어 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공장
  • amd64에서 Buster를 사용하여 .img 파일을 생성하려고 시도했지만 작동합니다 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

문제가 무엇인지 알아냈습니다.

/etc/ssl/certs에 추가 링크를 생성해야 하는 update-ca-certificates에 의해 수행되는 openssl rehash 명령과 관련이 있습니다.

내 경우에는 "해시 링크"(https://www.mail-archive.com/[이메일 보호됨]/msg1725724.html).

/usr/bin/c_rehash를 수동으로 실행해야 했습니다.

시스템이 chroot 외부의 ARM 장치에서 실행되면 문제가 되지 않을 수도 있습니다. 시도하자마자 이 답변을 업데이트하겠습니다.

관련 정보