Debootstrap armhd Buster: ローカル発行者証明書を取得できません

Debootstrap armhd Buster: ローカル発行者証明書を取得できません

ARM デバイスの SD カードにコピーされる .img ファイルを作成する Bash スクリプトがあります。

debootstrap コマンドを実行して最小限の Debian Stretch システム (armhf) をインストールし、次に chroot でスクリプトを実行します (ソフトウェアのインストール、ユーザーの作成など)。

最近、Buster をアップグレードする必要があったため、debootstrap コマンドの配布パラメータを「buster」に変更しました。しかし、ソフトウェアをインストールしようとすると、「SSL エラー: ローカル発行者証明書を取得できません」というエラーが発生します。HTTPS Web サイトでも同様のエラーが発生し、失敗することbundle installが判明しました。curl

確認したこと

  • 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作品
  • 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

何が問題なのか分かりました。

これは、update-ca-certificates によって実行される openssl rehash コマンドに関連しており、/etc/ssl/certs に追加のリンクを作成することになっています。

私の場合、「ハッシュリンク」の作成に失敗しました(メールアーカイブ[メールアドレス]/メッセージ1725724.html)。

/usr/bin/c_rehash を手動で実行する必要がありました。

システムが chroot 外の ARM デバイス上で実行されると、問題はなくなる可能性があります。試したらすぐにこの回答を更新します。

関連情報