Git / Développement : “fatal: unable to access — SSL certificate problem”

Git Développement “fatal unable to access — SSL certificate problem”

La solution définitive en 2025, quel que soit ton OS ou ton setup

Tu es en pleine deadline, tu lances ton classique :

git clone https://github.com/...
git pull
git push

Et là, Git te crache à la figure :

fatal: unable to access ‘https://…’: SSL certificate problem: self signed certificate in certificate chain
ou
SSL certificate problem: unable to get local issuer certificate
ou encore
SSL certificate problem: certificate has expired

Tu perds 30 minutes, tu râles, tu bois un café de trop…
Et pendant ce temps, ton collègue sous macOS fait exactement la même commande et ça marche. Injustice totale.

En 2025, cette erreur explose à cause de :

  • Let’s Encrypt qui limite à 90 jours + renouvellements parfois ratés sur les serveurs privés
  • Entreprises qui passent en certificats internes (self-signed)
  • GitLab/GitHub Enterprise derrière un proxy MITM
  • Bundles CA obsolètes sur Windows/Linux vieux
  • Antivirus (Avast, Kaspersky, Bitdefender) qui injectent leur propre certificat

Mais bonne nouvelle : il existe une solution propre pour chaque cas, et une solution « je veux que ça marche maintenant ».

Les 8 solutions qui fonctionnent VRAIMENT en décembre 2025

1. La solution propre et définitive (recommandée)

Mets à jour ton bundle de certificats :

Windows → Installe ou mets à jour Git for Windows (v2.46+) → il embarque les nouveaux CA
macOSbrew install openssl && brew link --force openssl
Linux Debian/Ubuntu

sudo apt update && sudo apt install ca-certificates -y
sudo update-ca-certificates

2. Tu es en entreprise avec proxy MITM / Zscaler / antivirus qui intercepte le SSL ?

Ajoute le certificat de l’entreprise dans Git :

# Windows (double-clic sur le .crt puis installer dans "Autorités de certification racines de confiance")
# macOS
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ~/zscaler-root.crt

# Linux
sudo cp toncertificat.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates

3. Le serveur utilise un certificat auto-signé ou expiré (GitLab local, vieux dépôt) ?

Ajoute-le manuellement pour ce dépôt seulement :

git config --global http.sslCAInfo /chemin/vers/ton-certificat.pem

Ou juste pour un projet :

git config http.sslCAInfo /chemin/vers/ton-certificat.pem

4. La méthode « je suis en rush, je veux que ça marche en 3 secondes » (à utiliser qu’en local ou CI privée !!)

git config --global http.sslVerify false

Oui, c’est dangereux sur un dépôt public. Mais en local ou derrière ton VPN d’entreprise → c’est safe.

Pour un seul dépôt :

git config http.sslVerify false

5. Let’s Encrypt expiré sur un GitLab/GitHub auto-hébergé ?

Force Git à utiliser les nouveaux certificats système :

git config --global http.sslBackend schannel    # Windows
git config --global http.sslBackend openssl    # Linux/macOS récent

6. Tu utilises un vieux Windows 10 sans mise à jour ?

Télécharge manuellement le bundle Mozilla actualisé :

curl -L https://curl.se/ca/cacert.pem -o cacert.pem
git config --global http.sslCAInfo "C:\chemin\cacert.pem"

7. Tu es derrière un proxy d’entreprise qui réécrit le SSL ?

Utilise le proxy en HTTP (pas HTTPS) pour Git :

git config --global http.proxy http://proxy.entreprise.com:8080
git config --global https.proxy http://proxy.entreprise.com:8080

8. Solution 2025 ultra-propre : passe en SSH (et oublie le HTTPS pour toujours)

# Change l'URL du remote
git remote set-url origin git@github.com:username/repo.git

Plus jamais de problème SSL. Jamais.

Récap visuel (choisis ta douleur)

Le tip que plus personne ne devrait ignorer en 2025

Crée un fichier ~/.gitconfig global avec ça une fois pour toutes :

[http]
    sslBackend = openssl
    sslVerify = true
[core]
    sshCommand = "ssh -o StrictHostKeyChecking=no"

Toi, tu as résolu ce merdier comment ?

Raconte-nous en commentaire ta pire galère SSL Git (et surtout ta solution miracle).
On est des milliers à lire ça en pleurant devant notre terminal à 2h du mat’.

Et partage cet article à ton collègue dev qui t’a saoulé avec son “ça marche chez moi” hier.

Ne manque pas notre analyse détaillée juste ici : Base de données MySQL : “ERROR 1045 (28000): Access denied for user”

Tu peux aussi lire ceci pour mieux comprendre : Securing your GitHub Pages site with HTTPS

Laisser un commentaire