적절한 인증서없이 git 서버를 사용해야하지만 할 필요는 없습니다.
env GIT_SSL_NO_VERIFY=true git command
매번 git 작업을 수행합니다. 그러나 다른 git 리포지토리에 SSL을 사용하도록 설정하고 싶습니다. 이 로컬을 단일 리포지토리로 만드는 방법이 있습니까?
적절한 인증서없이 git 서버를 사용해야하지만 할 필요는 없습니다.
env GIT_SSL_NO_VERIFY=true git command
매번 git 작업을 수행합니다. 그러나 다른 git 리포지토리에 SSL을 사용하도록 설정하고 싶습니다. 이 로컬을 단일 리포지토리로 만드는 방법이 있습니까?
답변:
넌 할 수있어
git config http.sslVerify false
특정 리포지토리에서 해당 리포지토리에 대해서만 SSL 인증서 검사를 비활성화합니다.
--global
리포지토리가 아직 체크 아웃되지 않은 경우 IS 옵션이 필요한 것 같습니다 (아직 로컬에 존재하지 않는 리포지토리에 대한 옵션을 설정할 수 없음). 나중에 언제든지 다시 켤 수 있습니다.
다음과 같이 할 수 있습니다
단일 레포
git config http.sslVerify false
모든 레포
git config --global http.sslVerify false
sudo
실제로 뭔가를하기 위해 루트 가 필요할 때만 사용해야합니다 . 새 소프트웨어 설치, 중요한 시스템 파일 수정, 드라이브 재 포맷, 네트워크 재구성, 서비스 관리와 같이 ...이 사람의 질문에는 그가 무엇이든 할 루트가 필요하다는 것을 암시하는 것이 없습니다. 관리자 인 경우 구성을 변경하는 명령을 포함하여 대부분의 명령을 대부분 sudo없이 실행해야합니다.
Thirumalai가 말한 것처럼 복제 저장소 내부 및없이 --global
. 즉,
GIT_SSL_NO_VERIFY=true git clone https://url
cd <directory-of-the-clone>
git config http.sslVerify false
could not lock global config file .gitconfig: Permission denied
/var/www/...
Windows 컴퓨터에 있고 Git을 설치 한 경우 다음 단계를 시도 할 수 있습니다.
세 이하 [HTTP] 섹션 줄을 추가 : sslVerify 거짓 =
[http]
sslVerify = false
서버를 올바르게 처리하도록 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 검증을 비활성화하면 이러한 종류의 공격에 취약합니다.
여러 저장소를 호스팅하는 하나의 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
리포지토리에 관계없이이 서버에 대한 모든 인증서 검사는 무시합니다.
코드에 대한 설명도 있습니다.
이 질문은 계속 나오고 아직 만족스러운 결과를 찾지 못했기 때문에 여기에 효과가 있습니다 (이전 답변 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