Leo Famulari <[email protected]> skribis: > While testing Nicolas's patch "Update giac-xcas", I found that `guix > download` accepts expired TLS certificates. > > I tried visiting the upstream site in order to verify the hash of the > updated package, and my browsers (Firefox and Chromium) warned me that > the site's certificate had expired ~1 day ago. > > However, `guix build -S` did not warn me or prevent me from downloading > the source code. > > Perhaps it doesn't matter for the case of `guix build -S`, since we > already know what we expect to download. But, for `guix download`, this > is a bug.
This is fixed by commit bc3c41ce36349ed4ec758c70b48a7059e363043a. Now ‘guix download’ shows a message like this upon failure: --8<---------------cut here---------------start------------->8--- $ SSL_CERT_DIR=/nowhere ./pre-inst-env guix download https://mirror.guixsd.org/index.html Starting download of /tmp/guix-file.jT2WjA >From https://mirror.guixsd.org/index.html... ERROR: X.509 certificate of 'mirror.guixsd.org' could not be verified: signer-not-found invalid failed to download "/tmp/guix-file.jT2WjA" from "https://mirror.guixsd.org/index.html" --8<---------------cut here---------------end--------------->8--- The message is not optimal, but it convey the message that something is wrong. For fixed-output derivations (‘guix build -S’, etc.), the behavior is unchanged: server certificates are happily ignored. This is IMO the right thing because (1) we know the hash of the expected content, which is the only authentication method that matters, and (2) checking certificates would require having fixed-output derivations depend on ‘nss’. Thanks, Ludo’.
