IT story

특정 리포지토리에만 GIT_SSL_NO_VERIFY를 어떻게 설정합니까?

hot-time 2020. 4. 6. 08:14
반응형

특정 리포지토리에만 GIT_SSL_NO_VERIFY를 어떻게 설정합니까?


적절한 인증서없이 git 서버를 사용해야하지만 할 필요는 없습니다.

env GIT_SSL_NO_VERIFY=true git command

매번 git 작업을 수행합니다. 그러나 다른 git 리포지토리에 SSL을 사용하도록 설정하고 싶습니다. 이 로컬을 단일 리포지토리로 만드는 방법이 있습니까?


넌 할 수있어

git config http.sslVerify false

특정 리포지토리에서 해당 리포지토리에 대해서만 SSL 인증서 검사를 비활성화합니다.


다음과 같이 할 수 있습니다

단일 레포

git config http.sslVerify false

모든 레포

git config --global http.sslVerify false

Thirumalai가 말한 것처럼 복제 저장소 내부 및없이 --global. 즉,

  1. GIT_SSL_NO_VERIFY=true git clone https://url
  2. cd <directory-of-the-clone>
  3. git config http.sslVerify false

Windows 컴퓨터에 있고 Git을 설치 한 경우 다음 단계를 시도 할 수 있습니다.

  1. Git 설치 폴더로 이동하십시오 (예 : C : \ Program Files (x86) \ Git \ etc).
  2. 파일을 편집하십시오 : gitconfig
  3. 세 이하 [HTTP] 섹션 줄을 추가 : sslVerify 거짓 =

    [http]
      sslVerify = false
    

특히 재귀 복제가 필요한 경우

GIT_SSL_NO_VERIFY=true git clone --recursive https://github.com/xx/xx.git

서버를 올바르게 처리하도록 GIT를 구성하는 쉬운 방법이 있습니다. git 서버에 특정 http 섹션을 추가하고 신뢰할 인증서 (Base64 인코딩)를 지정하십시오.

~ / .gitconfig

[http "https://repo.your-server.com"]
# windows path use double back slashes
#  sslCaInfo = C:\\Users\\<user>\\repo.your-server.com.cer
# unix path to certificate (Base64 encoded)
sslCaInfo = /home/<user>/repo.your-server.com.cer

이렇게하면 더 이상 SSL 오류가없고 (보통) 자체 서명 된 인증서의 유효성을 검사합니다. 이것은 중간자 공격으로부터 사용자를 보호하기 때문에 가장 좋은 방법입니다. SSL 검증 만 비활성화하면 이러한 종류의 공격에 취약합니다.

https://git-scm.com/docs/git-config#git-config-httplturlgt


여러 리포지토리를 호스팅하는 하나의 git 서버에 대해 SSL 검사를 비활성화 해야하는 경우 다음을 실행할 수 있습니다.

git config --bool --get-urlmatch http.sslverify https://my.bad.server false

(여전히 git <v1.8.5를 사용하는 경우을 실행하십시오 git config --global http.https://my.bad.server.sslVerify false)

명령이 끝나는 문서 에서 설명 하는 .gitconfig내용은 다음과 같습니다.

[http "https://my.bad.server"]
        sslVerify = false

리포지토리에 관계없이이 서버에 대한 모든 인증서 검사는 무시합니다.

코드에 대한 설명도 있습니다.


이것은 나를 위해 작동합니다 :

git init
git config --global http.sslVerify false
git clone https://myurl/myrepo.git

이 질문은 계속 나오고 아직 만족스러운 결과를 찾지 못했기 때문에 여기에 효과가 있습니다 (이전 답변 https://stackoverflow.com/a/52706362/1806760 , 작동하지 않음).

내 서버 https://gitlab.dev에 자체 서명 된 인증서가 있습니다.

첫 방송 git config --system --edit(프롬프트 상승 된 명령의 변경 --system--global당신이 당신 사용자를 수행하려는 경우)를 선택한 다음, 이전 후 다음 코드 삽입 [http]섹션 :

[http "https://gitlab.dev"]
        sslVerify = false

그런 다음 모든 것이 올바르게되었는지 확인하십시오.

> git config --type=bool --get-urlmatch http.sslVerify https://gitlab.dev
false

Windows의 경우 전역 구성을 원하면 다음을 실행하십시오.

git config --global http.sslVerify false

Linux의 경우 git repository 폴더에서 이것을 호출하면 :

git config http.sslVerify false

이 추가됩니다 sslVerify = false에서 [http]의 섹션 config에서 파일 .git당신이 수동으로 추가 할 경우도 해결책이 될 수 있습니다 폴더 nano .git/config:

...
[http]
  sslVerify = false

참고 : https://stackoverflow.com/questions/9008309/how-do-i-set-git-ssl-no-verify-for-specific-repos-only

반응형