[BUG] Native Claude Code not using system certs on MacOS

Status Fixed / completed
Reported on v2.1.17
Maintainer reply None cached
Activity 13 comments · opened Jan 22, 2026 · closed Aug 19, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Recently updated to the native installer after seeing the deprecation message, and started experiencing Claude Code hanging up with the message API Error: Error: unable to get issuer certificate, with a similar error trying to run the native installer.

Eventually I discovered that this was because my company is using Netskope to proxy all https traffic:

% curl -vI https://storage.googleapis.com/ 2>&1 | grep -A 6 "Server certificate"
* Server certificate:
*  subject: CN=storage.googleapis.com
*  start date: Dec 10 22:13:51 2025 GMT
*  expire date: Jan  9 22:13:51 2027 GMT
*  subjectAltName: host "storage.googleapis.com" matched cert's "storage.googleapis.com"
*  issuer: emailAddress=certadmin@netskope.com; CN=ca.amperity.goskope.com; OU=<>; O=Amperity; L=Seattle; ST=WA; C=US
*  SSL certificate verify ok.

Netskope adds a certificate to the MacOS root chain but this isn't being respected by CC. The docs mention an environment variable but it doesn't work - looks like from the pre-native era? Currently I can disable the Netskope client and still use CC but this isn't ideal.

What Should Happen?

Claude should use the system certificate chain for verification

Error Messages/Logs

% /Users/ras/.claude/downloads/claude-2.1.17-darwin-arm64 install

✘ Installation failed

Failed to fetch version from https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c
096819/claude-code-releases/latest: self signed certificate in certificate chain

Steps to Reproduce

  1. Install a MITM proxy for https traffic
  2. Try to use the native Claude Code

Claude Model

None

Is this a regression?

Yes, this worked in a previous version

Last Working Version

2.1.16

Claude Code Version

2.1.17

Platform

AWS Bedrock

Operating System

macOS

Terminal/Shell

Other

Additional Information

_No response_

View original on GitHub ↗

12 Comments

github-actions[bot] · 7 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/2816
  2. https://github.com/anthropics/claude-code/issues/2775
  3. https://github.com/anthropics/claude-code/issues/8054

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

ristew-amperity · 7 months ago

I think this can be solved on our side by whitelisting with Netskope but the docs could still be updated for the new native build

TheTinkeringIdiot · 7 months ago

Same issue here in WSL with a corporate MITM gateway. Gateway certs are installed and current in WSL and work fine with all services except Claude Code native. Same steps to reproduce as @ristew-amperity gives.

Error Messages/Logs

✘ Installation failed

Failed to fetch version from https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/stable: certificate has expired


Try running with --force to override checks

(--force has no effect)

Last Working Version

Latest from npm. No Claude Code native version works.

ralphpina · 7 months ago

Our company is impacted, we get Error: self signed certificate in certificate chain. when trying to auth the Notion MCP with our VPN on.

jaklaassen-affirm · 7 months ago
Our company is impacted, we get Error: self signed certificate in certificate chain. when trying to auth the Notion MCP with our VPN on.

I ran a little experiment just making requests to Notion from my laptop with the VPN on. cURL worked, node.js worked, Bun made the self-signed certificate error.

mmoreno43 · 6 months ago

I think I am having a similar issue when running on Windows Terminal (PowerShell). Maybe I am wrong here, but I think we need the ability to pass our MITM certs during install?

sasurau4 · 6 months ago

FWIW: I found following workaround from https://github.com/anthropics/claude-code/issues/8054#issuecomment-3324293239

export NODE_TLS_REJECT_UNAUTHORIZED=0 curl -fsSL https://claude.ai/install.sh | bash
TheTinkeringIdiot · 6 months ago

Confirmed this is an issue for all versions of Claude Code Native and NPM deployments. None tested on Windows, Linux, or MacOS utilize installed certificates in the OS for SSL proxies.

NPM deployments can work around with NODE_TLS_REJECT_UNAUTHORIZED=0, but native Claude Code has no such option and so cannot reach the API to handle prompts.

mcdonamw-ews · 5 months ago

This is an issue on Windows environments as well. I had to set environment variable NODE_USE_SYSTEM_CA=1, just to get Claude to install successfully. Note, we're using Zscaler proxy.

infotexture · 5 months ago

Same here with Cloudflare WARP:

  • Works in terminal with NODE_EXTRA_CA_CERTS="/path/to/your/cert.pem"
  • Works in the Code tab of Claude Desktop when Zero Trust VPN is OFF
  • Fails in the Code tab of Claude Desktop when Zero Trust VPN is ON

See also: #22559.

tcasett · 4 months ago

This issue is painful and kind of annoying in my corporate environment. I would love to see some progress on this so I don't have to do hacky work arounds and upset my security team :)

Allaoua9 · 2 months ago

I had to bypass our Zscaler proxy to make it work :

env -u HTTP_PROXY -u http_proxy -u HTTPS_PROXY -u https_proxy bash ./install.sh

Showing cached comments. Read the full discussion on GitHub ↗