This resolved it for me.
Modify this file: %userprofile%\AppData\Roaming\Cursor\User\settings.json
Add these to the end of list:
“http.systemCertificates”: true,
“http.experimental.systemCertificatesv2”: true,
“cursor.general.disableHttp2”: true
To see other approaches, expand below summary:
Summary
Cursor ZScaler Certificate
Configuration Guide
This guide helps you configure Cursor to work with ZScaler’s SSL decryption by installing and trusting your corporate certificate.
Solution Overview
ZScaler intercepts SSL traffic and re-signs it with its own certificate. Cursor needs to trust this certificate to function properly. There are multiple approaches - try them in order until one works.
Method 1: Install Certificate in Windows Certificate Store + Configure Cursor Settings
Step 1: Obtain the ZScaler Root Certificate
- Contact your IT department to get the ZScaler root certificate file (usually
.crt, .cer, or .pem format)
- Or download it from your ZScaler admin portal if you have access
Step 2: Install Certificate in Windows Certificate Store
- Press
Win + R, type mmc, and press Enter
- Go to File > Add/Remove Snap-in
- Select Certificates and click Add
- Choose Computer account > Local computer > Finish > OK
- Navigate to Certificates (Local Computer) > Trusted Root Certification Authorities > Certificates
- Right-click Certificates folder > All Tasks > Import
- Follow the wizard to import your ZScaler certificate file
- Select Place all certificates in the following store and verify it shows “Trusted Root Certification Authorities”
- Complete the import
Step 3: Configure Cursor to Trust System Certificates
- Open Cursor
- Press
Ctrl + Shift + P (or Cmd + Shift + P on Mac) to open Command Palette
- Type “Preferences: Open User Settings (JSON)” and select it
- Add these settings to your
settings.json:
{
"http.systemCertificates": true,
"http.experimental.systemCertificatesv2": true,
"cursor.general.disableHttp2": true
}
- Save the file and restart Cursor
Method 2: Use NODE_EXTRA_CA_CERTS Environment Variable
If Method 1 doesn’t work, configure Node.js (which Cursor uses) to trust your certificate:
Step 1: Locate Your Certificate File
Save your ZScaler root certificate to a permanent location, e.g.:
C:\certs\zscaler-root.crt
Step 2: Set Environment Variable
- Press
Win + X and select System
- Click Advanced system settings
- Click Environment Variables
- Under User variables (or System variables if you want it for all users), click New
- Variable name:
NODE_EXTRA_CA_CERTS
- Variable value:
C:\certs\zscaler-root.crt (use your actual path)
- Click OK on all dialogs
- Restart Cursor (and any terminal windows if you have them open)
Alternative: Set via PowerShell (Current Session Only)
$env:NODE_EXTRA_CA_CERTS = "C:\certs\zscaler-root.crt"
Method 3: Use SSL_CERT_FILE Environment Variable
Similar to Method 2, but using a different variable:
- Set environment variable
SSL_CERT_FILE pointing to your certificate file
- Or set
SSL_CERT_DIR pointing to a directory containing certificates
- Restart Cursor
Method 4: Install win-ca Extension (Windows Only)
- Open Cursor
- Go to Extensions (Ctrl+Shift+X)
- Search for “win-ca” extension
- Install it
- Restart Cursor
This extension helps Node.js applications use certificates from the Windows Certificate Store.
Method 5: Disable HTTP/2 (Already Included in Method 1)
If you haven’t already, add this to Cursor settings:
{
"cursor.general.disableHttp2": true
}
This forces Cursor to use HTTP/1.1, which can bypass some SSL decryption issues.
Verification Steps
After applying any method:
- Restart Cursor completely
- Try using agentic coding features (Composer, Chat, etc.)
- Check for SSL/certificate errors in Cursor’s Developer Console:
- Help > Toggle Developer Tools
- Look for certificate or SSL errors in the Console tab
Additional Recommendations
Whitelist Cursor Domains in ZScaler
Ask your IT team to whitelist these Cursor domains to reduce interference:
api2.cursor.sh
api3.cursor.sh
repo42.cursor.sh
api4.cursor.sh
us-asia.gcpp.cursor.sh
us-eu.gcpp.cursor.sh
us-only.gcpp.cursor.sh
Bypass SSL Inspection for Cursor (If Policy Allows)
If your organization’s security policy permits, configure ZScaler to bypass SSL inspection for Cursor’s domains. This prevents certificate re-signing issues entirely.
Troubleshooting
- Still not working? Try combining methods (e.g., install in cert store + set NODE_EXTRA_CA_CERTS + disable HTTP/2)
- Certificate format issues? Convert between formats if needed:
.pem to .crt: Usually just rename the file
- Use OpenSSL if conversion is needed:
openssl x509 -in cert.pem -out cert.crt
- Check certificate validity: Ensure the certificate hasn’t expired
- Contact IT: If issues persist, your IT team may need to adjust ZScaler policies
Notes
- These changes affect Cursor system-wide, not just individual projects
- You may need administrator privileges to install certificates in the system store
- Some methods require Cursor to be restarted to take effect
- Keep your certificate file in a secure location if using environment variables