Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cacert: ensure that NIX_SSL_CERT_FILE is readable before using it #345322

Open
wants to merge 1 commit into
base: staging
Choose a base branch
from

Conversation

lukegb
Copy link
Contributor

@lukegb lukegb commented Sep 29, 2024

Description of changes

Following on from #303307, we check that NIX_SSL_CERT_FILE is readable from the current environment before using it; otherwise we set it from the cacert package as before.

We log a message if we're inheriting it, as well as if we're ignoring it, to leave a breadcrumb for people wondering why their custom SSL cert file isn't being used.

Fixes #345226.

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

Following on from NixOS#303307, we check that `NIX_SSL_CERT_FILE` is readable
from the current environment before using it; otherwise we set it from
the cacert package as before.

We log a message if we're inheriting it, as well as if we're ignoring
it, to leave a breadcrumb for people wondering why their custom SSL cert
file isn't being used.

Fixes NixOS#345226.
echo "cacert/setup-hook: NIX_SSL_CERT_FILE in environment $NIX_SSL_CERT_FILE cannot be read; overriding" >&2
fi
export NIX_SSL_CERT_FILE="@out@/etc/ssl/certs/ca-bundle.crt"
fi
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was thinking of this:

export NIX_SSL_CERT_FILE="${NIX_SSL_CERT_FILE:-@out@/etc/ssl/certs/ca-bundle.crt}"
if test ! -r "$NIX_SSL_CERT_FILE"; then
  echo "cacert/setup-hook: NIX_SSL_CERT_FILE in environment $NIX_SSL_CERT_FILE cannot be read; overriding" >&2
  export NIX_SSL_CERT_FILE="@out@/etc/ssl/certs/ca-bundle.crt"
fi

It's still a bit of duplication, but at least there's no edge cases around e.g. testing an empty file when NIX_SSL_CERT_FILE isn't set.

Copy link
Contributor

@timbertson timbertson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the logging might be a bit verbose, but I believe this should fix the issue.

@wegank wegank added the 12.approvals: 1 This PR was reviewed and approved by one reputable person label Oct 11, 2024
@EmileGregoire-Eaton
Copy link

Is there something blocking this PR from getting merged? We are facing an issue that is fixed by this PR in our current setup.

@timbertson
Copy link
Contributor

timbertson commented Jan 8, 2025 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants