---
title: "Erreurs de certificat de proxy d’entreprise dans npm, Git et curl sur Mac · Guides Kilobat"
url: "https://kilobat.app/fr/guides/corporate-proxy-certificates.html"
description: "Corrigez « unable to get local issuer certificate » dans npm, Node, Git, curl et Homebrew derrière un proxy d’entreprise, sans désactiver la vérification des certificats."
---

VPN, proxy et filtres

# Les certificats de proxy d’entreprise bloquent les outils de Terminal sur un Mac

Certains réseaux d’entreprise inspectent le trafic HTTPS. Le proxy signe alors le trafic avec un certificat racine de l’entreprise, et les outils qui ne lui font pas confiance s’arrêtent.

S’applique à : toutes les versions actuelles de macOS. `NODE_USE_SYSTEM_CA` de Node.js nécessite Node.js 22.19, 24.6 ou ultérieur. · Vérifié le 29 octobre 2026

## Symptômes

- npm ou Node affiche « self-signed certificate in certificate chain » ou « unable to get local issuer certificate ».
- Git affiche « SSL certificate problem » pour les dépôts distants HTTPS.
- Safari ouvre le site, mais pas curl ni Python.
- Les erreurs ne se produisent que sur le réseau ou le VPN de l’entreprise.

## Causes probables

- **Inspection TLS.** Le proxy remplace le certificat du site par un certificat signé par un certificat racine de l’entreprise.
- **Des magasins de confiance séparés.** Safari utilise le trousseau de macOS. Beaucoup d’outils en ligne de commande utilisent leur propre liste de certificats de confiance.
- **Un réglage de proxy manquant.** Les outils de Terminal n’utilisent pas toujours le proxy du système. Ils ont besoin de variables de proxy ou de leur propre réglage.

## Comment vérifier

1. Affichez la chaîne de certificats envoyée par le serveur. Regardez l’émetteur du premier certificat.

   ```
   openssl s_client -connect registry.npmjs.org:443 -servername registry.npmjs.org -showcerts </dev/null
   ```
2. Affichez la négociation TLS avec curl.

   ```
   curl -v https://registry.npmjs.org/ -o /dev/null
   ```
3. Trouvez le certificat racine de l’entreprise dans Trousseaux d’accès. Cherchez le nom de votre entreprise dans le trousseau Système.
4. Affichez les variables de proxy dans votre shell.

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

## Comment corriger

1. Demandez le certificat racine de l’entreprise à votre service informatique, sous forme de fichier PEM. Ne faites pas confiance à un certificat d’origine inconnue.
2. Pour les outils Node.js, indiquez le fichier dans `NODE_EXTRA_CA_CERTS`. Relancez l’outil après l’avoir défini.

   ```
   export NODE_EXTRA_CA_CERTS=~/certs/company-root.pem
   ```
3. Avec Node.js 22.19, 24.6 ou ultérieur, vous pouvez utiliser les certificats approuvés par le trousseau.

   ```
   export NODE_USE_SYSTEM_CA=1
   ```
4. Pour npm, définissez le fichier de certificat.

   ```
   npm config set cafile ~/certs/company-root.pem
   ```
5. Pour Git, définissez le fichier de certificat.

   ```
   git config --global http.sslCAInfo ~/certs/company-root.pem
   ```
6. Pour curl, indiquez le fichier avec `--cacert`.

   ```
   curl --cacert ~/certs/company-root.pem https://example.com
   ```
7. Définissez le proxy de l’entreprise pour les outils de Terminal si votre service informatique en utilise un.

   ```
   export https_proxy=http://proxy.example.com:8080
   ```
8. Ne désactivez pas la vérification des certificats, comme `strict-ssl` ou `http.sslVerify`. La connexion ne serait plus sûre.

## Avec Kilobat

1. La vérification de connexion de Kilobat signale un échec TLS comme une couche à part. Elle indique aussi si le proxy du système fonctionne là où la connexion directe échoue.

   ```
   kilobat why https://registry.npmjs.org/
   ```
2. Ajoutez `--app` pour utiliser les variables de proxy de l’environnement de cette app.

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

## Questions

**Pourquoi Safari fonctionne-t-il alors que npm échoue ?**

Safari fait confiance aux certificats du trousseau de macOS. npm utilise les certificats fournis avec Node.js, sauf si vous ajoutez le certificat de l’entreprise.

**Peut-on régler strict-ssl sur false sans risque ?**

Non. Cela désactive toute vérification des certificats pour le registre. Ajoutez plutôt le certificat racine de l’entreprise.

## Sources

- [Node.js : Command-line API, NODE_EXTRA_CA_CERTS et --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 et http.proxy, page man installée avec macOS 27.2 (Git 2.56)
- [Assistance Apple : Modifier les réglages de confiance d’un certificat dans Trousseaux d’accès](https://support.apple.com/guide/keychain-access/kyca11871)
- curl(1), page man installée avec macOS 27.2

Sources vérifiées le 29 octobre 2026. Les pages man sont celles installées avec macOS ; ouvrez-en une avec `man <name>` dans Terminal.

## Guides associés

- [Les téléchargements Homebrew ou npm échouent sur un Mac](https://kilobat.app/fr/guides/homebrew-npm-download-fails.html): Homebrew télécharge avec curl et Git.
- [Des réglages de proxy empêchent les apps de se connecter sur un Mac](https://kilobat.app/fr/guides/proxy-settings-breaking-apps.html): Un réglage de proxy fait passer le trafic par un autre serveur.
- [« Cette connexion n’est pas privée » et avertissements de certificat sur un Mac](https://kilobat.app/fr/guides/connection-not-private-mac.html): Safari affiche un avertissement de certificat quand il ne peut pas confirmer l’identité d’un site web.
- [SSH et Git expirent sur un Mac](https://kilobat.app/fr/guides/ssh-git-timeouts.html): SSH et Git ont besoin d’une connexion TCP fonctionnelle avec le serveur.
