Hi!
I've ran into an issue with nix develop shells.
My setup:
- Nix Darwin (macos)
- Custom TLS certificates installed via nix darwin
Everything works as expected with the installed certificates, but as soon as I enter into a development shell with nix develop, the certificates are not available and thus, I get TLS errors that break whatever I'm doing in the dev shell. If I use an impure development shell, the issue disappears.
Is there a way to use pure nix develop shells which respect the installed certificates?
5 Comments
onlinepersona@programming.dev · 1 pts · 2y
Could you provide more information? Snippets of the config that are relevant e.g custom TLS certs config, what does the flake look like, self-signed TLS certs? What exactly is breaking?
curl https://localhost:8080/something?Have you compared the environment variables?
Anti Commercial-AI license
neo@lemmy.hacktheplanet.be · 3 pts · 2y
It’s almost as if you’d like OP to provide a reproducible example. If only there was a tool for that /s
secana@programming.dev · 1 pts · 2y
Sure. I import the certificates like this:
where
home.pemis a default PEM formatted certificate. It works fine to import the cert system wide this way.If I enter the flake.nix and run a simple
curlagainst the remote server I get the following, which is typical for a TLS certificate error.So it seems to me that the development shell does not pick up the certificates installed on the system. I can work around that by using an impure shell, but I think that this is not how nix should be used.
onlinepersona@programming.dev · 2 pts · 2y
So the certs end up in these files:
Only the first one is mentioned on stackoverflow as being used by Go on debian.
Curl seems to have its default location compiled in by passing
--with-ca-bundle, but after installingcurlFulland runningcurl-config --ca, it doesn't look like that was used and the "default" path is guessed.Looking further in the
curlderivation there are these lines for darwin :So, check the value of
NIX_SSL_CERT_FILEoutsidenix shelland within. The path might have to be set there. I dunno how to do that automatically withnix shell, so it might have to be done manually.Anti Commercial-AI license
secana@programming.dev · 2 pts · 2y
Thanks, I'll try that!
neo@lemmy.hacktheplanet.be · 1 pts · 2y