---
title: "Erros de certificado de proxy empresarial em npm, Git e curl no Mac · Guias do Kilobat"
url: "https://kilobat.app/pt/guides/corporate-proxy-certificates"
description: "Corrija “unable to get local issuer certificate” em npm, Node, Git, curl e Homebrew atrás de um proxy empresarial sem desativar a verificação de certificados."
---

VPN, proxy e filtros

# Certificados de proxy empresarial interferem em ferramentas do Terminal no Mac

Algumas redes empresariais inspecionam o tráfego HTTPS. O proxy assina o tráfego com um certificado raiz da empresa e ferramentas que não confiam nele param.

Aplica-se a: todas as versões atuais do macOS. O `NODE_USE_SYSTEM_CA` do Node.js requer Node.js 22.19, 24.6 ou posterior. · Verificado: 29 de outubro de 2026

## Sintomas

- npm ou Node mostra “self-signed certificate in certificate chain” ou “unable to get local issuer certificate”.
- Git mostra “SSL certificate problem” para repositórios remotos HTTPS.
- O Safari abre o site, mas curl ou Python não.
- Os erros ocorrem apenas na rede ou VPN da empresa.

## Possíveis causas

- **Inspeção TLS.** O proxy substitui o certificado do site por outro assinado por um certificado raiz da empresa.
- **Armazenamentos de confiança separados.** O Safari usa as chaves do macOS. Muitas ferramentas de linha de comando usam suas próprias listas de certificados confiáveis.
- **Ajuste de proxy ausente.** Ferramentas no Terminal nem sempre usam o proxy do sistema. Elas precisam de variáveis de proxy ou ajustes próprios.

## Como verificar

1. Mostre a cadeia de certificados enviada pelo servidor. Veja o emissor do certificado no topo.

   ```
   openssl s_client -connect registry.npmjs.org:443 -servername registry.npmjs.org -showcerts </dev/null
   ```
2. Mostre o handshake TLS com curl.

   ```
   curl -v https://registry.npmjs.org/ -o /dev/null
   ```
3. Encontre o certificado raiz da empresa no Acesso às Chaves. Procure o nome da empresa nas chaves do Sistema.
4. Mostre as variáveis de proxy no shell.

   ```
   env | grep -i proxy
   ```

## Como corrigir

1. Obtenha o certificado raiz da empresa com a equipe de TI como arquivo PEM. Não confie em certificados de fontes desconhecidas.
2. Para ferramentas Node.js, informe o arquivo em `NODE_EXTRA_CA_CERTS`. Reinicie a ferramenta após configurá-lo.

   ```
   export NODE_EXTRA_CA_CERTS=~/certs/company-root.pem
   ```
3. Com Node.js 22.19, 24.6 ou posterior, você pode usar os certificados em que as chaves confiam.

   ```
   export NODE_USE_SYSTEM_CA=1
   ```
4. Para npm, defina o arquivo de certificado.

   ```
   npm config set cafile ~/certs/company-root.pem
   ```
5. Para Git, defina o arquivo de certificado.

   ```
   git config --global http.sslCAInfo ~/certs/company-root.pem
   ```
6. Para curl, informe o arquivo com `--cacert`.

   ```
   curl --cacert ~/certs/company-root.pem https://example.com
   ```
7. Configure o proxy empresarial para ferramentas do Terminal se sua equipe de TI usar um.

   ```
   export https_proxy=http://proxy.example.com:8080
   ```
8. Não desative a verificação de certificados, por exemplo com `strict-ssl` ou `http.sslVerify`. Isso torna a conexão insegura.

## Com o Kilobat

1. A verificação de conexão do Kilobat informa uma falha TLS como uma camada própria. Ela também informa se o proxy do sistema funciona quando o caminho direto não funciona.

   ```
   kilobat why https://registry.npmjs.org/
   ```
2. Adicione `--app` para usar as variáveis de proxy do ambiente desse app.

   ```
   kilobat why https://registry.npmjs.org/ --app process:node
   ```

## Perguntas

**Por que o Safari funciona quando o npm falha?**

O Safari confia nos certificados das chaves do macOS. O npm usa os certificados incluídos no Node.js, a menos que você adicione o certificado da empresa.

**É seguro definir strict-ssl como false?**

Não. Isso interrompe todas as verificações de certificado do registro. Adicione o certificado raiz da empresa.

## Fontes

- [Node.js: API de linha de comando, NODE_EXTRA_CA_CERTS e --use-system-ca](https://nodejs.org/api/cli.html)
- [Documentação do npm: config (cafile, proxy, https-proxy, strict-ssl)](https://docs.npmjs.com/cli/v11/using-npm/config)
- git-config(1), http.sslCAInfo e http.proxy, página de manual instalada com o macOS 27.2 (Git 2.56)
- [Suporte da Apple: Altere os ajustes de confiança de um certificado no Acesso às Chaves](https://support.apple.com/guide/keychain-access/kyca11871)
- curl(1), página de manual instalada com o macOS 27.2

Verificado em 29 de outubro de 2026.

## Guias relacionados

- [Downloads do Homebrew ou npm falham no Mac](https://kilobat.app/pt/guides/homebrew-npm-download-fails): O Homebrew baixa arquivos com curl e Git.
- [Ajustes de proxy impedem apps de se conectar no Mac](https://kilobat.app/pt/guides/proxy-settings-breaking-apps): Um ajuste de proxy envia tráfego por outro servidor.
- [“Esta Conexão Não É Privada” e avisos de certificado no Mac](https://kilobat.app/pt/guides/connection-not-private-mac): O Safari mostra um aviso de certificado quando não consegue confirmar a identidade de um site.
- [SSH e Git esgotam o tempo de espera no Mac](https://kilobat.app/pt/guides/ssh-git-timeouts): SSH e Git precisam de uma conexão TCP funcional com o servidor.
