---
title: "Errores de certificado de un proxy corporativo en npm, Git y curl en el Mac · Guías de Kilobat"
url: "https://kilobat.app/es/guides/corporate-proxy-certificates.html"
description: "Soluciona «unable to get local issuer certificate» en npm, Node, Git, curl y Homebrew detrás de un proxy de empresa, sin desactivar la verificación de certificados."
---

VPN, proxy y filtros

# Los certificados de un proxy corporativo rompen las herramientas de Terminal en un Mac

Algunas redes de empresa inspeccionan el tráfico HTTPS. El proxy firma entonces el tráfico con un certificado raíz de la empresa, y las herramientas que no confían en él se detienen.

Se aplica a: todas las versiones actuales de macOS. `NODE_USE_SYSTEM_CA` de Node.js requiere Node.js 22.19, 24.6 o posterior. · Revisado: 29 de octubre de 2026

## Síntomas

- npm o Node muestran «self-signed certificate in certificate chain» o «unable to get local issuer certificate».
- Git muestra «SSL certificate problem» en los remotos HTTPS.
- Safari abre el sitio, pero curl o Python no.
- Los errores solo ocurren en la red o la VPN de la empresa.

## Causas probables

- **Inspección TLS.** El proxy sustituye el certificado del sitio por uno firmado por un certificado raíz de la empresa.
- **Almacenes de confianza separados.** Safari usa el llavero de macOS. Muchas herramientas de línea de comandos usan su propia lista de certificados de confianza.
- **Falta un ajuste de proxy.** Las herramientas de Terminal no siempre usan el proxy del sistema. Necesitan variables de proxy o su propio ajuste.

## Cómo comprobarlo

1. Muestra la cadena de certificados que envía el servidor. Mira el emisor del certificado superior.

   ```
   openssl s_client -connect registry.npmjs.org:443 -servername registry.npmjs.org -showcerts </dev/null
   ```
2. Muestra la negociación TLS (handshake) con curl.

   ```
   curl -v https://registry.npmjs.org/ -o /dev/null
   ```
3. Busca el certificado raíz de la empresa en Acceso a Llaveros. Busca el nombre de tu empresa en el llavero Sistema.
4. Muestra las variables de proxy de tu shell.

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

## Cómo solucionarlo

1. Pide a tu equipo de TI el certificado raíz de la empresa como archivo PEM. No confíes en un certificado de origen desconocido.
2. Para las herramientas de Node.js, indica el archivo en `NODE_EXTRA_CA_CERTS`. Vuelve a iniciar la herramienta después de configurarlo.

   ```
   export NODE_EXTRA_CA_CERTS=~/certs/company-root.pem
   ```
3. Con Node.js 22.19, 24.6 o posterior, puedes usar los certificados en los que confía el llavero.

   ```
   export NODE_USE_SYSTEM_CA=1
   ```
4. Para npm, configura el archivo de certificado.

   ```
   npm config set cafile ~/certs/company-root.pem
   ```
5. Para Git, configura el archivo de certificado.

   ```
   git config --global http.sslCAInfo ~/certs/company-root.pem
   ```
6. Para curl, indica el archivo con `--cacert`.

   ```
   curl --cacert ~/certs/company-root.pem https://example.com
   ```
7. Configura el proxy de la empresa para las herramientas de Terminal si tu equipo de TI usa uno.

   ```
   export https_proxy=http://proxy.example.com:8080
   ```
8. No desactives la verificación de certificados, por ejemplo con `strict-ssl` o `http.sslVerify`. Eso hace que la conexión no sea segura.

## Con Kilobat

1. La comprobación de conexión de Kilobat muestra un fallo de TLS como una capa propia. También indica si el proxy del sistema funciona donde la ruta directa no.

   ```
   kilobat why https://registry.npmjs.org/
   ```
2. Añade `--app` para usar las variables de proxy del entorno de esa app.

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

## Preguntas

**¿Por qué Safari funciona cuando npm falla?**

Safari confía en los certificados del llavero de macOS. npm usa los certificados que incluye Node.js, salvo que añadas el certificado de la empresa.

**¿Es seguro poner strict-ssl en false?**

No. Desactiva toda verificación de certificados para el registro. Añade en su lugar el certificado raíz de la empresa.

## Fuentes

- [Node.js: Command-line API, NODE_EXTRA_CA_CERTS y --use-system-ca](https://nodejs.org/api/cli.html)
- [npm Docs: config (cafile, proxy, https-proxy, strict-ssl)](https://docs.npmjs.com/cli/v11/using-npm/config)
- git-config(1), http.sslCAInfo y http.proxy, página man instalada con macOS 27.2 (Git 2.56)
- [Soporte técnico de Apple: Cambiar los ajustes de confianza de un certificado en Acceso a Llaveros](https://support.apple.com/guide/keychain-access/kyca11871)
- curl(1), página man instalada con macOS 27.2

Fuentes revisadas el 29 de octubre de 2026. Las páginas man son las que se instalan con macOS; abre una con `man <name>` en Terminal.

## Guías relacionadas

- [Las descargas de Homebrew o npm fallan en un Mac](https://kilobat.app/es/guides/homebrew-npm-download-fails.html): Homebrew descarga con curl y Git.
- [Los ajustes de proxy impiden que las apps se conecten en un Mac](https://kilobat.app/es/guides/proxy-settings-breaking-apps.html): Un ajuste de proxy envía el tráfico a través de otro servidor.
- [«Esta conexión no es privada» y advertencias de certificado en un Mac](https://kilobat.app/es/guides/connection-not-private-mac.html): Safari muestra una advertencia de certificado cuando no puede confirmar la identidad de un sitio web.
- [SSH y Git agotan el tiempo de espera en un Mac](https://kilobat.app/es/guides/ssh-git-timeouts.html): SSH y Git necesitan una conexión TCP con el servidor que funcione.
