npm ERR! code UNABLE_TO_GET_ISSUER_CERT_LOCALLY
npm can't verify the registry's certificate
Seen in npm, npx, yarn and pnpm behind corporate proxies
Node.js could not find the CA that issued the registry's certificate, so npm refused the HTTPS connection.
Common causes
- A corporate proxy or antivirus intercepts HTTPS and signs with its own CA, which Node.js does not trust.
- A private registry (Nexus, Artifactory, Verdaccio) is missing its intermediate certificate.
- An old Node.js version ships an outdated CA list.
How to fix it
- Give npm your corporate CA: npm config set cafile /path/to/corp-ca.pem.
- Or for all Node.js tools: export NODE_EXTRA_CA_CERTS=/path/to/corp-ca.pem.
- For a private registry, install the full chain on the server.
- strict-ssl=false only hides the problem; it is not a fix.
Got a different message? Paste it into the error explainer.
Related errors
- fatal: unable to access '...': SSL certificate problem: unable to get local issuer certificate · Git can't verify the server's certificate
- npm ERR! code SELF_SIGNED_CERT_IN_CHAIN · npm sees an untrusted root certificate
- Error response from daemon: Get "https://registry.example.com/v2/": x509: certificate signed by unknown authority · Docker doesn't trust the registry's certificate
- fatal: unable to access '...': Could not resolve host: github.com · Git can't resolve the remote's hostname
- error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 · The push is larger than the server or proxy accepts
- error: RPC failed; curl 18 transfer closed with outstanding read data remaining · The connection dropped during a git transfer
- fatal: the remote end hung up unexpectedly · The Git server closed the connection
- kex_exchange_identification: Connection closed by remote host · The SSH server closed the connection before the handshake
- Permission denied (publickey) · The server rejected every SSH key you offered
- Host key verification failed. · SSH couldn't confirm the server's identity
- WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! · The server's SSH host key is different from last time
- Unable to negotiate with 203.0.113.10 port 22: no matching host key type found. Their offer: ssh-rsa · The server only offers an old host key type