Zscaler代理环境下Nix执行命令遭遇SSL连接错误求助
Zscaler代理环境下Nix SSL连接错误的解决方法
问题重现
执行命令:
nix-shell -p nix-info --run --show-trace --verbose "nix-info"
出现错误:
warning: error: unable to download 'https://cache.nixos.org/': SSL connect error (35) OpenSSL/3.0.14: error:16000069:STORE routines::unregistered scheme; retrying in 273 ms
已尝试配置NIX_SSL_CERT_FILE环境变量、合并企业根CA与系统cert.pem,但问题未解决。
针对性解决步骤
1. 确保Zscaler证书导出格式正确
- 从浏览器导出Zscaler根CA证书时,选择**Base64编码的X.509 (.CER)**格式,保存为
zscaler-root-ca.pem - 避免使用DER格式,否则Nix无法正常识别证书内容
2. 配置Nix的SSL证书路径
修改Nix配置文件(全局用/etc/nix/nix.conf,用户级用~/.config/nix/nix.conf),添加:
ssl-cert-file = /path/to/your/zscaler-root-ca.pem
将/path/to/your/zscaler-root-ca.pem替换为实际的证书文件路径
3. 同步环境变量与Nix配置
- 确保
NIX_SSL_CERT_FILE环境变量指向同一证书:
export NIX_SSL_CERT_FILE=/path/to/your/zscaler-root-ca.pem
- 执行以下命令验证配置是否生效:
nix show-config | grep ssl-cert-file
4. 修复OpenSSL证书存储scheme问题
错误提示的unregistered scheme可能是证书存储格式不兼容导致,尝试:
- 将Zscaler证书合并到系统默认证书库(以Linux为例):
cat /path/to/zscaler-root-ca.pem >> /etc/ssl/certs/ca-certificates.crt
- 更新系统证书缓存:
update-ca-certificates
5. 强制Nix使用系统SSL库
若以上步骤无效,让Nix调用系统OpenSSL而非自带版本:
在nix.conf中添加:
ssl-cert-file = /etc/ssl/certs/ca-certificates.crt
保存后重新执行目标命令测试
内容的提问来源于stack exchange,提问作者Prakhar Mishra
相关产品推荐
相关产品推荐

