Ako vyriešiť problém so SSL certifikátom: Unable to get local issuer certificate v Git

Neexistuje žiadna významná zmena v roku 2026, ktorá by urobila starý obchádzajúci postup „vypnúť SSL verifikáciu“ dobrým riešením. Aktuálna dokumentácia Gitu stále predvolene nastavuje http.sslVerify na true a Git stále podporuje dôveru CA založenú na súboroch aj voliteľné TLS backendy, ako sú OpenSSL a Schannel. Trvalé riešenie spočíva v tom, že Gitu umožníte dôverovať správnej certifikačnej autorite, alebo v oprave neúplného reťazca certifikátov servera – nie v zakázaní verifikácie.

Chyba SSL certificate problem: unable to get local issuer certificate znamená, že knižnica TLS používaná Gitom nedokázala zostaviť dôveryhodný reťazec certifikátov od certifikátu servera k certifikačnej autorite, ktorej dôveruje. To sa môže stať, pretože lokálne úložisko CA neobsahuje vydávajúcu CA, firemný proxy na inšpekciu HTTPS znovu podpisuje prevádzku internou CA, Git číta nesprávny zväzok CA, alebo samospravovaný server Git nepredkladá požadované medzicertifikáty.

Windows PowerShell zobrazujúci zlyhanie git clone s problémom SSL certifikátu unable to get local issuer certificate

Typické zlyhanie Git HTTPS: vzdialený server je dosiahnuteľný, ale verifikácia reťazca certifikátov nemôže nájsť dôveryhodného vydavateľa.

Začnite najbezpečnejšou odpoveďou

Použite toto poradie:

  1. Potvrďte, ktoré nastavenia SSL Gitu a TLS backend sú aktívne.
  2. Rozhodnite, či chýbajúca dôvera patrí do úložiska dôvery operačného systému, alebo do zväzku CA Gitu.
  3. Ak mnoho klientov zlyháva na rovnakom samohostovanom serveri, opravte reťazec certifikátov servera namiesto opravovania každého klienta.
  4. Znovu otestujte so zapnutou SSL verifikáciou a odstráňte akékoľvek dočasné alebo zastarané konfiguračné obchádzky.

Aktuálna dokumentácia git-config definuje http.sslVerify, http.sslCAInfo, http.sslCAPath, http.sslBackend a špecifické správanie Schannel používané na Windows. Predvolená hodnota pre verifikáciu certifikátov zostáva zapnutá.

Modré vysvetlenie riešenia problémov vysvetľujúce, že Git musí dôverovať vydavateľovi certifikátu alebo použiť správny zväzok certifikátov

Spoľahlivá oprava spočíva v obnovení platného reťazca dôvery, nie v potlačení kontroly certifikátu.

Krok 1: Zistite, čo Git skutočne používa

Pred inštaláciou certifikátov alebo úpravou konfigurácie skontrolujte hodnoty a ich pôvod:

git --version
git config --show-origin --get http.sslVerify
git config --show-origin --get http.sslCAInfo
git config --show-origin --get http.sslBackend
git config --show-origin --get http.proxy
git config --show-origin --get http.proxySSLCAInfo

Ak príkaz nič nevypíše, táto možnosť môže jednoducho používať predvolené nastavenie Gitu alebo libcurl. --show-origin je dôležité, pretože hodnota môže pochádzať zo systémových, globálnych, lokálnych repozitárových alebo zahrnutých konfiguračných súborov. Oprava nesprávnej úrovne môže nechať účinné nastavenie nezmenené.

Skontrolujte tiež vzdialený server, ku ktorému sa skutočne pripájate:

git remote -v
git ls-remote https://git.example.com/team/repo.git

Ak Git zlyháva iba pre jeden firemný alebo súkromný hostiteľ, zatiaľ čo verejné HTTPS stránky fungujú, problém je pravdepodobne špecifický pre hostiteľa alebo konfiguráciu servera. Ak Git zlyháva pre mnoho nesúvisiacich HTTPS vzdialených serverov, najprv skontrolujte lokálnu inštaláciu Gitu, cestu k zväzku CA, proxy a konfiguráciu dôvery systému.

Nerobte z tohto svoj prvý príkaz

git config --global http.sslVerify false

Toto vypne verifikáciu certifikátu servera pre požiadavky Git HTTPS na globálnej úrovni používateľa. Môže to spôsobiť zmiznutie chyby, ale zároveň odstráni ochranu, ktorá overuje, či komunikujete so zamýšľaným serverom. Git zdokumentoval, že verifikácia je predvolene zapnutá z dobrého dôvodu.

Ak nájdete starú globálnu obchádzku, ktorá už nie je potrebná, obnovte predvolené správanie:

git config --global --unset http.sslVerify

alebo explicitne nastavte:

git config --global http.sslVerify true

Krok 2: Na Windows si vyberte medzi úložiskom certifikátov Windows a PEM zväzkom CA

Vývojári na Windows sa s touto chybou často stretávajú, keď prehliadač funguje, ale Git nie. To nutne neznamená, že je server pokazený. Prehliadač môže dôverovať firemnému koreňovému certifikátu nainštalovanému vo Windows, zatiaľ čo Git nakonfigurovaný s backendom typu OpenSSL môže používať samostatný zväzok CA.

Git podporuje hodnoty http.sslBackend ako openssl a schannel. Oficiálna dokumentácia certifikátov TLS curl vysvetľuje, že Schannel predvolene používa natívne úložisko CA Windows.

Možnosť A: Použite Schannel, keď Windows už má dôveryhodnú firemnú CA

git config --global http.sslBackend schannel

Toto je často dobrá voľba pre pracovné stanice výhradne na Windows spravované organizáciou, ktorá distribuuje dôveryhodné koreňové a medzicertifikáty prostredníctvom politiky Windows. Umožňuje Gitu spoliehať sa na rovnaký systém dôvery certifikátov Windows, ktorý môžu používať iné natívne aplikácie.

Existuje kompromis: zmena backendu mení správanie certifikátov HTTPS Gitu globálne pre daného používateľa. Ak vaša organizácia zámerne spravuje vyhradený PEM zväzok pre Git alebo automatizáciu, zostávanie pri OpenSSL môže byť predvídateľnejšie.

Aktuálna dokumentácia Gitu tiež uvádza jemné správanie Schannel: keď je Schannel vybraný prostredníctvom http.sslBackend, Git zvyčajne neaplikuje http.sslCAInfo, pretože dodaný zväzok CA by mohol prepísať úložisko certifikátov Windows. Nastavenie http.schannelUseSSLCAInfo existuje pre prostredia, ktoré toto správanie zámerne chcú.

Možnosť B: Ponechajte OpenSSL a nasmierujte Git na schválený zväzok CA

Ak vám vaša organizácia poskytne PEM zväzok obsahujúci požadované interné koreňové a medzicertifikáty, nakonfigurujte Git tak, aby používal tento súbor:

git config --global http.sslCAInfo "C:/certs/company-ca-bundle.pem"

Git definuje http.sslCAInfo ako súbor obsahujúci certifikáty používané na overenie partnera. Konfiguráciu HTTP môžete tiež obmedziť na zodpovedajúcu URL adresu namiesto zmeny každého cieľa HTTPS. Konfigurácia Gitu http.<url>.* podporuje priraďovanie špecifické pre URL podľa schémy, hostiteľa, portu a cesty.

Napríklad:

git config --global http."https://git.example.com/".sslCAInfo "C:/certs/company-ca-bundle.pem"

Toto užšie nastavenie je užitočné, keď iba interný server Git potrebuje súkromnú CA, zatiaľ čo verejné hostitelia Git by mali pokračovať v používaní normálneho zväzku dôvery.

Krok 3: Na macOS, Linux, CI a kontajneroch opravte zdroj CA, ktorý proces skutočne používa

Princíp je mimo Windows rovnaký: proces Git musí mať prístup k certifikátu CA, ktorý vydal certifikát servera alebo proxy. Presné príkazy pre úložisko dôvery systému sa líšia podľa operačného systému a distribúcie Linuxu, preto použite oficiálny mechanizmus správy certifikátov platformy alebo explicitný zväzok CA Gitu dodaný vaším správcom.

Vysvetlenie verifikácie vydavateľa SSL Gitu a požiadaviek na dôveryhodný koreňový certifikát

Git musí byť schopný prepojiť predložený certifikát servera cez jeho medzivydavateľov s lokálne dôveryhodnou CA.

Pre kontrolovanú úlohu CI alebo kontajner, kde nechcete meniť globálne úložisko dôvery hostiteľa, môže byť zväzok CA explicitný:

git config --global http.sslCAInfo /etc/company/git-ca-bundle.pem

alebo pre jednotlivý proces Git tiež rozpoznáva premennú prostredia GIT_SSL_CAINFO. Aktuálna dokumentácia Gitu uvádza, že táto premenná prostredia môže prepísať http.sslCAInfo.

Nekopírujte náhodný súbor cacert.pem z fóra. Ak chýbajúci certifikát je firemná CA, získajte ju od vášho IT alebo PKI tímu. Ak je vzdialený server verejná služba a váš zväzok CA je jednoducho zastaraný, aktualizujte operačný systém, distribúciu Gitu, základný obraz kontajnera alebo balík dôveryhodných CA prostredníctvom jeho normálneho kanála aktualizácií.

Firemná inšpekcia TLS je špeciálny prípad

>Niektoré podnikové proxy inšpekcie HTTPS a predkladajú náhradný certifikát podpísaný internou firemnou CA. V takejto situácii môže prehliadač uspieť, pretože firemná CA je nainštalovaná v úložisku dôvery OS, zatiaľ čo samostatný zväzok CA Gitu ju neobsahuje.

Správne riešenie je dôverovať CA organizácie prostredníctvom príslušného úložiska dôvery alebo zväzku Gitu. Neexportujte aktuálny certifikát listu a trvalo mu nedôverujte ako náhrade za vydávajúcu firemnú CA.

Rozlišujte tiež dva samostatné prípady proxy:

  • Interceptácia TLS pripojenia servera Git: Firemná CA, ktorá podpisuje náhradný certifikát servera, musí byť dôveryhodná prostredníctvom normálnej cesty certifikátu servera, ako je Windows Schannel alebo http.sslCAInfo.
  • HTTPS proxy, ktorého vlastné pripojenie proxy používa TLS: Git poskytuje http.proxySSLCAInfo špecificky pre zväzok CA používaný na overenie tohto pripojenia HTTPS proxy.

Git dokumentuje http.proxy a http.proxySSLCAInfo samostatne, preto použite nastavenie, ktoré zodpovedá pripojeniu, ktoré zlyháva.

Krok 4: Ak je reťazec servera neúplný, opravte server, ak môžete

Ak mnoho používateľov alebo nových strojov zlyháva na rovnakom samohostovanom serveri Git, problém môže byť na strane servera, nie zbierka pokazených klientov. Server by mal predkladať reťazec certifikátov potrebný pre klientov na prepojenie certifikátu listu s dôveryhodným vydavateľom.

Zoznam bežných príčin problémov so SSL certifikátmi Git vrátane zastaraných koreňových certifikátov, certifikátov firemného proxy, vlastných CA, nesprávnej konfigurácie SSL Gitu a problémov so systémovými hodinami

Keď mnoho klientov zlyháva na jednom súkromnom hostiteľovi Git, skontrolujte reťazec servera a cestu proxy pred distribúciou obchádzok na strane klienta.

Oficiálna dokumentácia riešenia problémov so SSL GitLab špecificky opisuje unable to get local issuer certificate ako prípad, keď klient nemôže získať požadovaného vydavateľa, a odporúča buď dôverovať príslušnej CA na klientovi, alebo opraviť server tak, aby predkladal kompletný reťazec certifikátov.

Ak spravujete server, opravte nakonfigurovaný certifikát celého reťazca a znovu otestujte z čistého klienta. To je uprednostniteľné pred žiadaním každého vývojára, aby pridával ad hoc výnimky.

Overte opravu bez oslabenia TLS

Po oprave konfigurácie dôvery zopakujte rovnakú operáciu Git:

git ls-remote https://git.example.com/team/repo.git

Ak to uspeje, skúste znova pôvodnú operáciu clone, fetch, pull alebo push.

Potom skontrolujte konečnú konfiguráciu súvisiacu so zabezpečením:

git config --show-origin --get http.sslVerify
git config --show-origin --get http.sslBackend
git config --show-origin --get http.sslCAInfo

Očakávaný stav je, že verifikácia certifikátov zostáva zapnutá a Git dokáže zostaviť platný reťazec prostredníctvom zamýšľaného zdroja dôvery.

Ktorá oprava zodpovedá vašej situácii?

SituáciaNajlepší východiskový bodPrečo
Prehliadač na Windows funguje; Git zlyháva v firemnej sietiSkontrolujte, či je firemná CA v úložisku dôvery Windows; zvážte SchannelPrehliadač a dôvera Windows môžu byť už správne, zatiaľ čo Git OpenSSL používa iný zväzok
Firma poskytuje PEM zväzok CA pre vývojárske nástrojePoužite http.sslCAInfo, ak je to možné, špecifické pre hostiteľaExplicitné a reprodukovateľné pre Git, CI a kontajnery
Nový kontajner Linux zlyháva, ale pracovná stanica fungujeNainštalujte/aktualizujte balík CA alebo pridajte CA organizácie do úložiska dôvery kontajnera/zväzku GitKontajner má svoj vlastný súborový systém a dôverný materiál
Iba jedna samohostovaná služba Git zlyháva pre mnohých používateľovSkontrolujte a opravte reťazec certifikátov serveraOprava na strane servera sa vyhne opravám pre každého klienta
HTTPS proxy má sám súkromný certifikátNakonfigurujte dôveryhodnú CA pre HTTPS proxy pomocou http.proxySSLCAInfo, ak je to vhodnéVerifikácia TLS proxy je oddelená od verifikácie pôvodného servera
Niekto navrhuje http.sslVerify=falseNepoužívajte to ako trvalé riešenieObchádza verifikáciu certifikátu, ktorá chráni pripojenie HTTPS

Čo tak prepnúť vzdialený server Git na SSH?

SSH môže byť platnou alternatívnou prepravou, ak vaša hostingová služba Git to podporuje a vaša organizácia to povoľuje. Zmena zo vzdialeného servera HTTPS na vzdialený server SSH sa úplne vyhne reťazcu certifikátov HTTPS, ale neopraví pôvodný problém s dôverou TLS. SSH má svoj vlastný model overovania hostiteľského kľúča a správy poverení.

Používajte SSH preto, lebo zodpovedá vášmu dizajnu autentifikácie a nasadenia – nie len preto, aby ste skryli chybu konfigurácie certifikátu, ktorú budú iné nástroje HTTPS naďalej stretávať.

Bežné chyby, ktorým sa treba vyhnúť

  • Vypnutie SSL verifikácie globálne. Toto odstráni verifikáciu certifikátu servera pre budúce pripojenia Git HTTPS.
  • Dôvera certifikátu listu namiesto vydávajúcej CA. Certifikáty listu expirujú a rotujú; dôvera by mala byť normálne ukotvená v schválenom reťazci CA.
  • Ručná úprava zväzku CA dodaného s Gitom bez zdokumentovania. Aktualizácia môže nahradiť súbor a zmena môže byť pre kolegov alebo CI nemožná na reprodukovanie.
  • Predpoklad, že úspech prehliadača dokazuje, že Git má rovnaký zdroj dôvery. Git môže používať OpenSSL a samostatný PEM zväzok, zatiaľ čo prehliadač používa úložisko OS.
  • Použitie http.proxySSLCAInfo pre nesprávne pripojenie. Toto nastavenie je určené na overenie HTTPS proxy, nie na všeobecnú náhradu konfigurácie CA pôvodného servera.
  • Opravovanie každej vývojárskej pracovnej stanice, keď server Git posiela neúplný reťazec. Opravte server, ak ho kontrolujete.

Záver

Chyba Git SSL certificate problem: unable to get local issuer certificate je problém s reťazcom dôvery, nie problém s autentizačným tokenom a nie niečo, čo by sa normálne malo riešiť vypnutím verifikácie certifikátu. Zistite, či Git používa OpenSSL, Schannel, vlastný zväzok CA alebo HTTPS proxy; potom umiestnite schválenú vydávajúcu CA do zdroja dôvery, ktorý Git skutočne používa.

Na Windows je Schannel praktická možnosť, keď je firemná CA už spravovaná v úložisku certifikátov Windows. V CI, kontajneroch alebo prostrediach, ktoré potrebujú reprodukovateľnú dôveru založenú na súboroch, je http.sslCAInfo často prehľadnejšie. A keď mnoho klientov zlyháva na jednej samohostovanej službe, opravte reťazec certifikátov servera namiesto distribúcie nezabezpečených obchádzok.

Zanechať komentár

Ako opraviť chybu „CSS štýly Tailwind sa neaktualizujú“ v aplikácii Vite React

Ako opraviť chybu „CSS štýly Tailwind sa neaktualizujú“ v aplikácii Vite React

Opravte neaktualizované štýly CSS v Tailwind vo Vite React kontrolou nastavenia Tailwind v4, importu CSS, detekcie zdrojov, dynamických tried, HMR a zastaraných vyrovnávacích pamätí.

Ako opraviť ModuleNotFoundError: V Pythone 3 neexistuje modul s názvom „pip“

Ako opraviť ModuleNotFoundError: V Pythone 3 neexistuje modul s názvom „pip“

Oprava chyby ModuleNotFoundError v jazyku Python 3 pre príkaz pip v systémoch Windows, macOS a Linux pomocou nástroja ensurepip, balíkov operačného systému, virtuálnych prostredí a kontrol interpretov.

Ako opraviť chybu „Oprávnenie zamietnuté (verejný kľúč)“ v GitHub SSH

Ako opraviť chybu „Oprávnenie zamietnuté (verejný kľúč)“ v GitHub SSH

Opravte chybu „Oprávnenie GitHub SSH zamietnuté (verejný kľúč)“ kontrolou hostiteľa, aktívneho kľúča SSH, účtu GitHub, autorizácie SSO, vzdialenej adresy URL a prístupu na port 22.

Ako opraviť chybu „Git Push Rejected: Non-FastForward“ bez straty zmien

Ako opraviť chybu „Git Push Rejected: Non-FastForward“ bez straty zmien

Bezpečne opravte nerýchle pretáčanie zmien v Gite. Chráňte lokálnu prácu, načítajte vzdialené commity, vyberte zlúčenie alebo rebase, vyriešte konflikty a odošlite zmeny bez straty.

Ako opraviť chybu „Nginx 502 Bad Gateway“ pri proxyovaní do Node.js

Ako opraviť chybu „Nginx 502 Bad Gateway“ pri proxyovaní do Node.js

Opravte chyby Nginx 502 Bad Gateway s Node.js upstream kontrolou portu aplikácie, protokolov NGINX, adresy proxy_pass, siete kontajnerov, časových limitov a opätovného načítania.

Ako opraviť chybu „Typ 'null' nie je priraditeľný k typu“ v TypeScripte

Ako opraviť chybu „Typ 'null' nie je priraditeľný k typu“ v TypeScripte

Oprava chyby „Typ 'null' nie je možné priradiť k typu“ v jazyku TypeScript pomocou typov zjednotenia, zúženia, predvolených hodnôt a bezpečných tvrdení v rámci strictNullChecks.

Ako opraviť chybu „Prisma Client has not been generated yet“

Ako opraviť chybu „Prisma Client has not been generated yet“

Opravte chybu nevygenerovaného Prisma Client kontrolou generátora, schémy, výstupnej cesty, importov, verzií, nastavenia monorepa a krokov zostavenia pri nasadení.

Ako opraviť chybu „ERR_MODULE_NOT_FOUND“ v importoch Node.js ESM

Ako opraviť chybu „ERR_MODULE_NOT_FOUND“ v importoch Node.js ESM

Opravte chybu Node.js ERR_MODULE_NOT_FOUND v ESM kontrolou ciest importu, prípon súborov, inštalácie balíkov, exportov, režimu ESM a čistých inštalácií.

Ako vyriešiť problém so SSL certifikátom: Unable to get local issuer certificate v Git

Ako vyriešiť problém so SSL certifikátom: Unable to get local issuer certificate v Git

Vyriešte chybu Git 'unable to get local issuer certificate' identifikáciou dôveryhodného backendu, inštaláciou správneho reťazca CA a ponechaním zapnutej SSL verifikácie.

Ako opraviť chybu časového limitu siete MongoDB v pripojení Mongoose

Ako opraviť chybu časového limitu siete MongoDB v pripojení Mongoose

Opravte chyby časového limitu siete MongoDB v Mongoose identifikáciou typu časového limitu, testovaním dosiahnuteľnosti Atlasu alebo TCP, opravou URI a ladením časových limitov len v odôvodnených prípadoch.