Muszę używać serwera git bez odpowiednich certyfikatów, ale nie chcę tego robić
env GIT_SSL_NO_VERIFY=true git command
za każdym razem, gdy wykonuję operację git. Ale chciałbym również pozostawić włączony protokół SSL dla innych repozytoriów git. Czy istnieje sposób, aby uczynić to lokalnym jednym repozytorium?
Odpowiedzi:
Możesz to zrobić
w konkretnym repozytorium, aby wyłączyć sprawdzanie certyfikatu SSL tylko dla tego repozytorium.
źródło
--global
opcja JEST potrzebna, gdy repo NIE jest jeszcze wypisane (nie można ustawić opcji repo, które nie istnieje jeszcze lokalnie). Zawsze można go ponownie włączyć po.Możesz wykonać następujące czynności
Dla pojedynczego repo
Dla wszystkich repo
źródło
sudo
powinien być używany tylko wtedy, gdy potrzebujesz roota, aby coś zrobić. Jak instalowanie nowego oprogramowania, modyfikowanie ważnych plików systemowych, formatowanie dysków, rekonfiguracja sieci, zarządzanie usługami ... W pytaniu tego faceta nie było nic, co sugerowałoby, że musi zrobić root. Jeśli jesteś administratorem, powinieneś uruchamiać większość swoich poleceń - włączając te, które zmieniają konfigurację - bez sudo przez większość czasu.Jak to powiedział Thirumalai, ale w sklonowanym repozytorium i bez niego
--global
. To znaczy,GIT_SSL_NO_VERIFY=true git clone https://url
cd <directory-of-the-clone>
git config http.sslVerify false
źródło
could not lock global config file .gitconfig: Permission denied
/var/www/...
W szczególności, jeśli potrzebujesz rekurencyjnego klonu
źródło
Jeśli korzystasz z komputera z systemem Windows i masz zainstalowanego Git, możesz spróbować wykonać następujące czynności:
W sekcji [http] dodaj wiersz: sslVerify = false
źródło
Istnieje prosty sposób skonfigurowania GIT do obsługi serwera we właściwy sposób. Po prostu dodaj konkretną sekcję http dla swojego serwera git i określ, który certyfikat (zakodowany w Base64) zaufać:
~ / .gitconfig
W ten sposób nie będziesz już mieć błędów SSL i zweryfikujesz (zwykle) samopodpisany certyfikat. To najlepsza droga, ponieważ chroni cię przed atakami typu man-in-the-middle. Po wyłączeniu weryfikacji ssl jesteś podatny na tego rodzaju ataki.
https://git-scm.com/docs/git-config#git-config-httplturlgt
źródło
Jeśli musisz wyłączyć sprawdzanie protokołu SSL dla jednego serwera git obsługującego kilka repozytoriów, możesz uruchomić:
(Jeśli nadal używasz git <v1.8.5, uruchom
git config --global http.https://my.bad.server.sslVerify false
)Objaśnienie z dokumentacji, w której znajduje się polecenie, pokaż
.gitconfig
treść wyglądającą następująco:Zignoruje wszelkie sprawdzanie certyfikatów dla tego serwera, niezależnie od repozytorium.
Masz także jakieś wyjaśnienie w kodzie
źródło
To działa dla mnie:
źródło
To pytanie wciąż się pojawia i nie znalazłem jeszcze satysfakcjonującego rezultatu, więc oto, co zadziałało dla mnie (na podstawie poprzedniej odpowiedzi https://stackoverflow.com/a/52706362/1806760 , która nie działa):
Mój serwer ma
https://gitlab.dev
certyfikat z podpisem własnym.Najpierw uruchom
git config --system --edit
(z wiersza polecenia z podwyższonym poziomem uprawnień zmień--system
na,--global
jeśli chcesz to zrobić tylko dla użytkownika), a następnie wstaw następujący fragment kodu po poprzednich[http]
sekcjach:Następnie sprawdź, czy zrobiłeś wszystko poprawnie:
źródło
w systemie Windows, jeśli chcesz konfigurację globalną, uruchom
źródło
specific repos
wyraźneW systemie Linux, jeśli wywołasz to w folderze repozytorium git:
Spowoduje to dodanie
sslVerify = false
w[http]
częściconfig
pliku w.git
folderze, który może być również rozwiązanie, jeśli chcesz dodać to ręcznienano .git/config
:źródło