installer stock images fail to validate any HTTPS certificates (ca-certificates missing)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
debian-installer |
Fix Released
|
Unknown
|
|||
ca-certificates (Ubuntu) |
Invalid
|
Medium
|
Unassigned | ||
Trusty |
Fix Released
|
Medium
|
Mauricio Faria de Oliveira | ||
Xenial |
Fix Released
|
Medium
|
Mauricio Faria de Oliveira | ||
Bionic |
Invalid
|
Medium
|
Unassigned | ||
Cosmic |
Invalid
|
Medium
|
Unassigned | ||
Disco |
Invalid
|
Medium
|
Unassigned | ||
debian-installer (Debian) |
Fix Released
|
Unknown
|
|||
debian-installer (Ubuntu) |
Fix Released
|
Medium
|
Mauricio Faria de Oliveira | ||
Trusty |
Fix Released
|
Medium
|
Mauricio Faria de Oliveira | ||
Xenial |
Fix Released
|
Medium
|
Mauricio Faria de Oliveira | ||
Bionic |
Fix Released
|
Medium
|
Mauricio Faria de Oliveira | ||
Cosmic |
Fix Released
|
Medium
|
Mauricio Faria de Oliveira | ||
Disco |
Fix Released
|
Medium
|
Mauricio Faria de Oliveira |
Bug Description
[Impact]
* The installer stock images fail to validate any HTTPS
certificates because ca-certificates is not available
in the installer environment.
* This causes wget/download errors for preseed files on
HTTPS servers (or HTTP servers that redirect to HTTPS,
which are increasingly common nowadays - e.g., GitHub)
and theoretically any other files that are downloaded
with d-i-utils/
* The fix is to ship ca-certificates
stock images.
* Debian already ships ca-certificate-udeb in the stock
installer images; the fix is applied since Jan 2017.
(reference: Debian Bug #842040 / d-i commit 2f00c51a [1])
[Test Case]
* In the installer shell:
~ # wget http://
- FAIL if ca-certificates
"ERROR: cannot verify github.com's certificate, <...>'
- PASS if ca-certificates
"Saving to: 'index.html'"
* Test steps with virt-install and netboot images
are provided in the comments, for each release.
[Regression Potential]
* Low. This just adds the ca-certificates files in
/etc/ssl/certs and symlink in /usr/lib/ssl/certs,
so only tools looking for that would be affected.
* Apparently only wget checks for/uses those files,
and the difference in behavior is download errors
no longer occur.
[Notes]
* The ca-certificates
in the Ubuntu 'main' component, but in 'universe',
despite the normal deb being in 'main'.
However, when rebuilding in a PPA it goes into
'main' accordingly, and can be used by default
by debian-installer (otherwise, UDEB_COMPONENTS
has to be modified to include universe/d-i).
* So this fix includes a no-change-rebuild for the
ca-certificates package, in order to publish the
udeb in the archive (at least in PPA for testing).
Hopefully that can be sorted out for this fix
to work out.
* The ca-certificates and debian-installer builds
have been done in a PPA using all architectures,
and testing has been done with the amd64 images.
* This fix is requested for Bionic, Cosmic, Disco
at least.
* The fix for Trusty and Xenial needed a little
bit more work to build/ship the (new) udeb.
(reference: Debian Bug #845456 / ca-certificates commit 3acb3a90 [2])
It would be good to have them too if at all possible.
[1] https:/
[2] https:/
[Debugging]
For debugging purposes, one can install strace-udeb in the installer to verify wget's stat() calls to /usr/lib/ssl/certs.
~ # anna-install strace-udeb
~ # strace -e stat wget -O- https:/
...
Resolving github.com... stat("/
140.82.118.3, 140.82.118.4
Connecting to github.
stat("/
stat("/
stat("/
ERROR: cannot verify github.com's certificate, issued by 'CN=DigiCert SHA2 Extended Validation Server CA,OU=www.
Unable to locally verify the issuer's authority.
To connect to github.com insecurely, use `--no-check-
+++ exited with 5 +++
~ #
~ # anna-install ca-certificates
unknown udeb ca-certificates
~ # wget --no-check-
~ # udpkg -i ca-certificates
~ # strace -e stat wget -O- https:/
...
Resolving github.com... stat("/
140.82.118.3, 140.82.118.4
Connecting to github.
stat("/
stat("/
stat("/
HTTP request sent, awaiting response... 200 OK
stat("-", 0x7fffbb943558) = -1 ENOENT (No such file or directory)
Length: unspecified [text/html]
Saving to: 'STDOUT'
...
+++ exited with 0 +++
Related branches
tags: | added: sts sts-sponsor sts-sponsor-ddstreet |
Changed in debian-installer (Ubuntu Disco): | |
status: | New → In Progress |
Changed in debian-installer (Ubuntu Cosmic): | |
status: | New → In Progress |
Changed in debian-installer (Ubuntu Bionic): | |
status: | New → In Progress |
Changed in debian-installer (Ubuntu Xenial): | |
status: | New → In Progress |
status: | In Progress → New |
Changed in debian-installer (Ubuntu Disco): | |
importance: | Undecided → Medium |
Changed in debian-installer (Ubuntu Cosmic): | |
importance: | Undecided → Medium |
Changed in debian-installer (Ubuntu Bionic): | |
importance: | Undecided → Medium |
Changed in debian-installer (Ubuntu Xenial): | |
importance: | Undecided → Medium |
Changed in debian-installer (Ubuntu Trusty): | |
importance: | Undecided → Medium |
Changed in debian-installer (Ubuntu Cosmic): | |
assignee: | nobody → Mauricio Faria de Oliveira (mfo) |
Changed in debian-installer (Ubuntu Bionic): | |
assignee: | nobody → Mauricio Faria de Oliveira (mfo) |
Changed in debian-installer (Debian): | |
status: | Unknown → Fix Released |
Changed in ca-certificates (Ubuntu Bionic): | |
assignee: | nobody → Mauricio Faria de Oliveira (mfo) |
importance: | Undecided → Medium |
status: | New → In Progress |
Changed in ca-certificates (Ubuntu Cosmic): | |
assignee: | nobody → Mauricio Faria de Oliveira (mfo) |
importance: | Undecided → Medium |
status: | New → In Progress |
Changed in ca-certificates (Ubuntu Disco): | |
assignee: | nobody → Mauricio Faria de Oliveira (mfo) |
importance: | Undecided → Medium |
status: | New → In Progress |
description: | updated |
Changed in ca-certificates (Ubuntu Disco): | |
assignee: | Mauricio Faria de Oliveira (mfo) → nobody |
status: | In Progress → Invalid |
Changed in ca-certificates (Ubuntu Cosmic): | |
assignee: | Mauricio Faria de Oliveira (mfo) → nobody |
status: | In Progress → Invalid |
Changed in ca-certificates (Ubuntu Bionic): | |
assignee: | Mauricio Faria de Oliveira (mfo) → nobody |
status: | In Progress → Invalid |
Changed in ca-certificates (Ubuntu Xenial): | |
status: | New → Invalid |
assignee: | nobody → Mauricio Faria de Oliveira (mfo) |
status: | Invalid → In Progress |
Changed in ca-certificates (Ubuntu Trusty): | |
assignee: | nobody → Mauricio Faria de Oliveira (mfo) |
importance: | Undecided → Medium |
status: | New → In Progress |
Changed in ca-certificates (Ubuntu Xenial): | |
importance: | Undecided → Medium |
Changed in debian-installer (Ubuntu Xenial): | |
assignee: | nobody → Mauricio Faria de Oliveira (mfo) |
status: | New → In Progress |
Changed in debian-installer (Ubuntu Trusty): | |
assignee: | nobody → Mauricio Faria de Oliveira (mfo) |
status: | New → In Progress |
Changed in debian-installer: | |
status: | Unknown → Fix Released |
Testing steps common to all releases: ======= ======= ======= ======= =
=======
$ wget <netboot linux/initrd.img>
$ virt-install \ bus=virtio, format= qcow2 \ linux,initrd= initrd. gz,kernel_ args='console= ttyS0 ipv6.disable=1 auto=true hostname=ubuntu'
--name RELEASE \
--vcpus 2 \
--memory 512 \
--disk size=4,
--network user,model=virtio \
--graphics none \
--import \
--boot kernel=
Wait for network configuration steps to occur, then:
In dialog 'Download debconf preconfiguration file' select 'Continue'.
In dialog 'Select a language' select 'Go Back'.
In menu select 'Execute a shell', then select 'Continue'.
~ # cat /etc/default- release # for reference
~ # ls -d /usr/lib/ssl/certs/ # check if available
~ # wget http:// github. com # check error/success
Then ctrl+] to exit virsh console, and destroy/wipe guest. all-storage RELEASE
$ virsh destroy RELEASE
$ virsh undefine --remove-