방화벽 뒤의 HTTPS를 통해 GitHub에 액세스하려는 SSL 인증서 거부


389

방화벽 뒤에 갇혀 있으므로 GitHub 리포지토리에 액세스하려면 HTTPS를 사용해야합니다. Windows XP에서 cygwin 1.7.7을 사용하고 있습니다.

리모컨을 (으)로 설정하려고 시도했지만 https://username@github.com/username/ExcelANT.git비밀번호를 묻는 메시지를 표시했지만 입력 한 후에는 아무 것도 수행하지 않습니다. https://username:<password>github.com/username/ExcelANT.git빈 저장소를 처음부터 복제하지만 매번 같은 오류가 발생합니다.

오류 : SSL 인증서 문제입니다. CA 인증서가 올바른지 확인하십시오. 세부 정보 :
오류 : 14090086 : SSL 루틴 : SSL3_GET_SERVER_CERTIFICATE : https://github.com/username/ExcelANT.git/info/refs에 액세스하는 동안 인증서 확인에 실패했습니다.

켜면 GIT_CURL_VERBOSE=1나에게 준다

* github.com 포트 443 (# 0)에 connect ()를 연결
하려고합니다. * 207.97.227.239 시도 중 ... * 인증서 확인 위치 설정 :
* CAfile : 없음
CApath : / usr / ssl / certs
* SSL 인증서 문제, SSL 인증서 문제 CA 인증서는 정상입니다. 세부 사항 :
error : 14090086 : SSL 루틴 : SSL3_GET_SERVER_CERTIFICATE : 인증서 확인 실패
* 만료 지우기 오류 : 14090086 : SSL 루틴 : SSL3_GET_SERVER_CERTIFICATE : 인증서 확인 실패 * 만료 됨 지우기 * 연결 종료 중 # 0 오류 : SSL 인증서 문제, CA 인증서가 올바른지 확인하십시오 . 세부 사항 : 오류 : 14090086 : SSL 루틴 : SSL3_GET_SERVER_CERTIFICATE : 액세스하는 동안 인증서 확인 실패
* 연결 종료 # 0
* github.com 포트 443 (# 0)에 connect ()를 연결
하려고합니다. 위치 확인 :
* CAfile : 없음
CApath : / usr / ssl / certs
* SSL 인증서 문제, CA 인증서가 정상인지 확인하십시오. 세부:




https://github.com/username/ExcelANT.git/info/refs

fatal: HTTP request failed

방화벽, cygwin에 문제가 있습니까?

Git 구성에서 HTTP 프록시를 설정하지 않았지만 기본이 아닌 NTLM 인증이 필요한 ISA 서버이므로 git이 NTLM을 사용하도록 강제하는 방법을 모른다면 정찰을받습니다.


http.sslVerify를 false로 설정하면 연결이 안전합니까? 사용하기에 좋은 경로입니까? 그 사이에 우리는 pfsense 방화벽을 사용하고 있습니다. 현재 사용자 프로필의 .gitconfig 파일이 비어 있습니다.
Nullpointer

답변:


57

인증서 문제를 해결하려면이 답변을 건너 뛰십시오. 이 답변은 방화벽을 통한 터널링 ssh를 다루며 이는 IMHO가 방화벽 / 프록시를 처리하는 더 나은 솔루션입니다.

http 액세스를 사용하는 것보다 낫고 ssh.github.com 서버의 포트 443에서 github이 제공하는 ssh 서비스를 사용하는 것이 더 좋습니다.

우리는 코르크 마개라는 도구를 사용합니다. CygWin (cygwin 홈페이지에서 설정을 통해)과 자주 사용하는 패키징 도구를 사용하여 Linux에서 사용할 수 있습니다. MacOSX의 경우 macports에서 사용할 수 있으며 최소한 추출 할 수 있습니다.

명령 줄은 다음과 같습니다.

$ corkscrew <proxyhost> <proxyport> <targethost> <targetport> <authfile>

proxyhost와 proxyport는 https 프록시의 좌표입니다. targethost 및 targetport는 터널링 할 호스트의 위치입니다. authfile은 프록시 서버 사용자 이름 / 암호가 콜론으로 구분 된 한 줄의 텍스트 파일입니다.

예 :

abc:very_secret

자식 통신에 "일반"ssh 프로토콜을 사용하기위한 설치

~/.ssh/config이것을 트릭에 추가하면 일반적인 ssh 연결에 사용할 수 있습니다.

Host github.com
  HostName ssh.github.com
  Port 443
  User git
  ProxyCommand corkscrew <proxyhost> <proxyport> %h %p ~/.ssh/proxy_auth

이제 gitproxy에 ssh-ing하여 작동하는지 테스트 할 수 있습니다

pti@pti-laptop:~$ ssh github.com
PTY allocation request failed on channel 0
Hi ptillemans! You've successfully authenticated, but GitHub does not provide shell access.
       Connection to github.com closed.
pti@pti-laptop:~$

(참고 : 이전에 github에 로그인 한 적이없는 경우 ssh는 알려진 호스트 파일에 서버 키를 추가하도록 요청합니다. 편집증 인 경우 github 사이트에 표시된 RSA 지문을 확인하는 것이 좋습니다. 키를 올렸습니다).

이 방법의 약간의 변형은 개인 계정을 전문가 계정과 분리하기 위해 다른 키로 저장소에 액세스해야하는 경우입니다.

# 
# account dedicated for the ACME private github account 
#
Host acme.github.com
  User git
  HostName ssh.github.com
  Port 443
  ProxyCommand corkscrew <proxyhost> <3128> %h %p ~/.ssh/proxy_auth
  IdentityFile ~/.ssh/id_dsa_acme

즐겨!

우리는 Linux, Mac 및 Windows 모두에서 수년 동안 이것을 사용해 왔습니다.

당신이 원한다면 당신은 이 블로그 게시물에서 그것에 대한 자세한 내용을 읽을 수 있습니다


나는이 일을 포기했지만 다른 것을 보았고 일하게했다. .ssh / config를>로 변경 Host ssh.github.com >User oharab >Hostname ssh.github.com >Port 443 >PreferredAuthentications publickey >IdentityFile ~/.ssh/id_rsa 하고 git clone을 사용하여 복제하면 즉시 git@ssh.github.com:oharab/log4vba.git실행됩니다.
oharab

1
아래 답변이 더 도움이되지만 불행히도 stackoverflow는 단일 상황에 대한 답변 일지라도 항상 허용되는 답변을 맨 위에 둡니다.
mjaggard

1
어쨌든 https 프록시를 통한 SSL 터널링은 여전히 ​​HTTPS 인증서를 사용하거나 비활성화하고 성능이 떨어지고 사용자 친화적이며 보안 성이 떨어지는 솔루션으로 끝나는 것보다 더 나은 솔루션이라는 것을 알았으므로 대답을 업데이트했습니다. 글쎄, 많은 공감대가 나를 잘못 증명하지만 어쨌든이 문제에 대한 내 의견에 충실합니다.
Peter Tillemans

523

문제는 시스템에 인증 기관 인증서가 설치되어 있지 않다는 것입니다. 그리고이 인증서는 cygwin 's setup.exe와 함께 설치할 수 없습니다.

업데이트 : cygwin에 net / ca-certificates 패키지 설치 (dirkjot 덕분에)

두 가지 해결책이 있습니다.

  1. 실제로 루트 인증서를 설치하십시오. Curl guys가 Mozilla에서 인증서를 추출했습니다. .

    cacert.pem파일은 당신이 찾고있는 것입니다. 이 파일에는 250 개 이상의 CA 인증서가 포함되어 있습니다 (이 수의 ppl을 신뢰하는 방법을 모름). 이 파일을 다운로드하여 개별 인증서로 분할하여 / usr / ssl / certs (CApath)에 넣고 색인을 생성해야합니다.

    방법은 다음과 같습니다. cygwin setup.exe를 사용하여 curl 및 openssl 패키지를 설치하십시오.

    $ cd /usr/ssl/certs
    $ curl http://curl.haxx.se/ca/cacert.pem |
      awk '{print > "cert" (1+n) ".pem"} /-----END CERTIFICATE-----/ {n++}'
    $ c_rehash

    중요 : 사용 c_rehash하려면 설치해야 openssl-perl합니다.

  2. SSL 인증서 확인을 무시하십시오.

    경고 : SSL 인증서 확인을 비활성화하면 보안에 영향을 미칩니다. SSL / HTTPS 연결의 진위 여부를 확인하지 않으면 악의적 인 공격자가 신뢰할 수있는 엔드 포인트 (예 : GitHub 또는 다른 원격 Git 호스트)를 가장 할 수 있으며 Man-in-the-Middle 공격에 취약합니다. 이를 솔루션으로 사용하기 전에 보안 문제 위협 모델 을 완전히 이해해야합니다 .

    $ env GIT_SSL_NO_VERIFY=true git clone https://github...
    

9
curl을 설치할 필요는 없습니다. wget을 사용하십시오.wget -O - http://curl.haxx.se/ca/cacert.pem | awk 'split_after==1{n++;split_a fter=0} /-----END CERTIFICATE-----/ {split_after=1} {print > "cert" n ".pem"}'
Deebster

38
나는 이것이 cygwin이라는 것을 알고 있지만, 누군가 Centos를 사용하면 여기에 .pem이 있어야하는 / etc / pki / tls / certs입니다.
그만 두는 모니카 Cellio

2
나에게는 효과가 없었지만 내 길에는 c_rehash가 없습니다. 쉘을 다시 시작하려고했습니다. 또한 mkdir -p / usr / ssl / certs를 수행해야했습니다. Cygwin 설치가 다르거 나 없는지 궁금합니다. 또한 GIT_SSL_NO_VERIFY = true를 설정하고 복제 작업을 실행하면 다음과 같은 오류가 발생합니다. fatal: https://code.google.com/.../info/refs not found: did you run git update-server-info on the server?재부팅 후 작동합니까?
Jeff Axelrod

7
이 답변은 잘못되었습니다. cygwin ca-certificates패키지를 설치하면 누락 된 루트 인증서를 얻을 수 있습니다. 이 답변이 왜 그렇게 많은 결과를 얻었습니까?
rurban

32
SSL 인증서 확인을 끄지 마십시오. 이것은 산업 전반의 도구 및 응용 프로그램 코드에서 너무 자주 발생합니다. 그것은 중간 공격에서 당신에게 남자를 엽니 다. SSL을 사용하려면 올바르게 사용하십시오.
Tim

430

참고 : SSL 확인을 비활성화하면 보안에 영향을 미칩니다 . Git을 사용하여 네트워크를 통해 데이터를 전송할 때 Man in the Middle 공격이 가능합니다. 이를 솔루션으로 사용하기 전에 보안 관련 사항을 완전히 이해해야합니다. 또는 루트 인증서를 설치하십시오.

한 가지 방법은 SSL CERT 확인을 비활성화하는 것입니다.

git config --global http.sslVerify false

이렇게하면 CURL이 HTTPS 인증을 확인하지 못하게됩니다.

하나의 저장소에만 해당 :

git config http.sslVerify false

17
당신이 당신의 전역 설정 (예 : 모든 REPOS)을 편집하지 않으려면, --global 제외
에린

57
이것이 얼마나 위험한지 메모를 추가해 주시겠습니까?
Chronial

26
이것은 끔찍한 생각입니다. 인증서를 확인해야하는 이유가 있습니다. 인증서를 신뢰할 수있는 것으로 확인하지 않으면 누구나 인증서를 생성 할 수 있으며 중간 공격에 노출 된 사람에게 취약 할 수 있습니다.
Mark Carey

24
SSL 확인을 끄지 마십시오!
Tim

14
모든 "하지 마십시오"사람들에게 : 물론 이것이 가장 안전한 방법은 아닙니다. 그러나 SSL을 전혀 사용하지 않는 것이 훨씬 좋습니다. 일부 사람들은 개인 간단한 git 서버를 실행하기 때문에 좋습니다. 물론 실제 보안에 대해서는 NO GO 설정입니다. 가장 안전하지 않은 것은 네트워크를 통해 일반 바이트를 보내는 것입니다.
Peter Stegnar

109

Git이 전체 시스템에서 사용하는 것을 교체하지 않고 업데이트 된 인증서 번들을 사용하기를 원했습니다. Git이 내 홈 디렉토리에서 특정 파일을 사용하도록하는 방법은 다음과 같습니다.

mkdir ~/certs
curl http://curl.haxx.se/ca/cacert.pem -o ~/certs/cacert.pem

이제 .gitconfig피어 확인에 이것을 사용하도록 업데이트하십시오 .

[http]
sslCAinfo = /home/radium/certs/cacert.pem

참고 절대 경로를 사용하고 있습니다. Git은 여기서 경로 확장이 없으므로 ~추한 멍청이 없이는 사용할 수 없습니다 . 또는 구성 파일을 건너 뛰고 GIT_SSL_CAINFO대신 환경 변수 를 통해 경로를 설정할 수 있습니다 .

이 문제를 해결하려면을 설정하십시오 GIT_CURL_VERBOSE=1. Git이 사용하고있는 CA 파일의 경로는 출력에서 ​​"CAfile :"로 시작하는 행에 표시됩니다.


12
나에게 이것은 가장 좋은 대답입니다. 유닉스 (실제로는 NetBSD)에서 작동하며 시스템의 다른 것에는 영향을 미치지 않고 git에만 영향을 미치며 루트 / 관리자 액세스가 필요하지 않습니다. 감사!
Eric

1
완벽합니다. 더 잘할 수도 있습니다. /etc/ssl/certs/ca-certificates.crt우분투 8.04 LTS의 오래된 파일을이 파일 로 바꾸었고 마술처럼 작동했습니다!
마이클 오

1
@Eric NetBSD를 언급 해 주셔서 감사합니다.이 답변을 찾았습니다. NetBSD는 조금 이상합니다. OpenSSL 패키지를 설치했지만 인증서가 아닌 자리 표시 자 디렉토리 만 제공합니다.
atomicules

+200 더 멋지고, 우분투 상자에서도 작동했습니다. 자식에서 인증서 검사를 비활성화 할 필요가 없습니다.이 빠른 수정을 수행하십시오.
콜린 D 베넷

11
훌륭한 대답은 다음 명령으로 ~ / .gitconfig 파일을 수동으로 편집하지 git config --global http.sslCAinfo "$HOME/certs/cacert.pem"
않아도됩니다

41

이 작업을 수행하려면 (CentOS 5.6에서 RVM 설치) 다음을 실행해야했습니다.

export GIT_SSL_NO_VERIFY=true

그 후 RVM 설치 프로그램을 bash로 컬링하기위한 표준 설치 절차는 대단했습니다 :)


13
git config --global http.sslverify와 동일한 효과
Dyno Fu

20
이것은 매우 위험합니다! SSL 인증서 확인의 핵심은 HTTPS를 통해 코드를 전송할 때 코드가 변경되지 않도록 보호하는 것입니다! 이를 비활성화하면 악의적 인 사용자가 코드를 푸시하고 가져올 때 취약점 및 기타 불쾌한 것들을 코드에 삽입 할 수 있습니다.

http.sslVerify를 false로 설정하면 연결이 안전합니까? 사용하기에 좋은 경로입니까? 사이에 우리는 pfsense 방화벽을 사용합니다
Nullpointer

@Ravi 연결은 기술적으로 효과가 있지만, 명백히 좋은 생각 은 아닙니다 . git 오리진과 로컬 머신이 모두 내부이고 조직의 통제하에있는 경우 통과 가능할 수 있지만 user456814의 의견에 따라 확인을 비활성화하면 MITM 공격이 발생합니다.
독터 J

40

매우 간단한 해결책 : https : //를 git : //로 바꾸십시오.

https : //the.repository 대신 git : //the.repository를 사용 하면 작동합니다.

TortoiseGit이있는 Windows 에서이 문제가 발생하여 해결되었습니다.


에 대한 ssl을 확인하지 않기 때문에 이것이 효과가 있다고 생각합니다 git://. 위의 답변 에서 언급했듯이 SSL 확인을 비활성화하면 보안 위험이 있습니다.
danijar

5
@danijar 이것이 작동하는 이유는 SSL을 전혀 사용하지 않기 때문 입니다. git://프로토콜을 사용하는 대신 SSL 인증서의 인증 및 암호화를위한 공개 키와 개인 키 쌍을 SSH SSH를 사용합니다.

11
@Cupcake git://는 SSH를 사용 하지 않습니다 . SSH 프로토콜Git 프로토콜을 참조하십시오 .
nyuszika7 시간

@ nyuszika7h 아, 맞아. 나는 SCP-ish 구문 계속 git://혼동하고있다 . git@github.com:user/project.git

31

Alexey Vishentsev의 가장 인기있는 답변은 다음과 같습니다.

문제는 시스템에 인증 기관 인증서가 설치되어 있지 않다는 것입니다. 그리고이 인증서는 cygwin 's setup.exe와 함께 설치할 수 없습니다.

그러나 마지막 주장은 거짓입니다 (현재 또는 항상 알고 있습니다).

cygwin 설정으로 가서 'ca-certificates'패키지 (Net 아래에 있음)를 포함시키기 만하면됩니다. 이것은 나를 위해 속임수를했다.


1
cygwin git 오류는 CAfile: /etc/ssl/ca-bundle.crtcygwin이 패키지 설치를 ca-certificate합니다 /usr/ssl/certs/ca-bundle.crt. 따라서 ~/.gitconfig위치를 지정 하기 위해 편집 해야했습니다. [http]thensslCAinfo = /usr/ssl/certs/ca-bundle.crt
maxpolk

@ maxpolk : 링크를 만들었지 만 효과는 동일합니다. 이것은 분명히 cygwin git의 버그입니다. 티켓을 올리는 것을 고려 했습니까? sudo ln -s /usr/ssl/certs/ca-bundle.crt /etc/ssl/
dirkjot

오늘 2013-5-23 현재 cygwin git은 https를 통해 정상적으로 작동합니다 : cygwin을 설치해야한다는 것을 기억하십시오 ca-certificates.
bobbogo

나는 이 질문 에서 여기에 왔으며 , 여기에서 대답을 찾을 수 있음을 나타냅니다. 그러나 관련 답변이 나이 답변은 저에게 효과적이지 않습니다. TortoiseSVN이 계속 출력error: SSL certificate problem, verify that the CA cert is OK.
또는 Mapper

패키지 관리자에서 cygwin 설치 파일을 정확히 어디에 설치합니까? CA 인증서는 Git의 bin 폴더 내에 있어야합니까?
221b

16

Cygwin의 원래 질문 목록을 알고 있지만 CentOS의 솔루션은 다음과 같습니다.

curl http://curl.haxx.se/ca/cacert.pem -o /etc/pki/tls/certs/ca-bundle.crt

출처 : http://eric.lubow.org/2011/security/fixing-centos-root-certificate-authority-issues/


이것은 나에게 큰 효과가 있었다. 그러나 OP가 제안한대로 원본을 먼저 백업해야합니다. 이전 버전의 시스템을 사용하는 경우 Github에서 인증서를 갱신 할 때 이런 일이 발생합니다.
Evan Donovan

CentOS 5 yum update openssl에서는 ca 번들을 업데이트하여로 수정했습니다 .
raarts

이 옵션을 따르려면 파일을 사용하기 전에 파일의 SHA-256 해시를 확인해야합니다. 당신이 얻을 수있는 현재 파일에 대한 sha256sum을 에 의해 당신이 설정하고있는 컬 이외에 다른 수단 (이미 확실하게 설정할 수있어 다른 컴퓨터의 브라우저처럼) 다음의 출력에 대해 비교 sha256sum /etc/pki/tls/certs/ca-bundle.crt당신이 권리를 가지고로 파일.
kbolino

16

SSL을 설정하는 동안 창에서 복제하려면 false를 확인하십시오.

    git -c http.sslVerify=false clone http://example.com/e.git

전역 설정 보핑 하지 않고 복제하려는 경우 .


14

CentOS 5.x yum update openssl에서 시스템을 업데이트 한 openssl 패키지를 간단하게 업데이트했습니다.ca-bundle.crt 파일 하고 문제를 해결 .

다른 배포판에서도 마찬가지입니다.


!! 이것은 Red Hat Linux의 이전 설치 (4.1.2)에서 효과적이었습니다. 감사!
Josh

13

Cygwin git 클라이언트를 github.com과 함께 사용하기 만하면 인증서 파일을 다운로드, 추출, 변환, 분할하는 번거 로움없이 훨씬 더 간단한 방법이 있습니다. 다음과 같이 진행하십시오 (Cygwin 및 Firefox가 설치된 Windows XP라고 가정합니다)

  1. Firefox에서 github 페이지로 이동하십시오 (any)
  2. 주소 표시 줄에서 github 아이콘을 클릭하여 인증서를 표시하십시오.
  3. "추가 정보"-> "인증서 표시"-> "세부 사항"을 클릭하고 계층에서 최상위 노드로 시작하는 각 노드를 선택하십시오. 이들 각각에 대해 "내보내기"를 클릭하고 PEM 형식을 선택하십시오.
    • GTECyberTrustGlobalRoot.pem
    • DigiCertHighAssuranceEVRootCA.pem
    • DigiCertHighAssuranceEVCA-1.pem
    • github.com.pem
  4. 위 파일을 로컬 드라이브에 저장하고 확장자를 .pem으로 변경 한 다음 Cygwin 설치에서 / usr / ssl / certs로 이동하십시오 (Windows : c : \ cygwin \ ssl \ certs)
  5. (선택 사항) bash에서 c_reshash를 실행하십시오.

그게 다야.

물론 이것은 github에 필요한 하나의 인증서 계층 만 설치합니다. 물론이 방법을 신뢰할 수없는 200 개의 인증서를 설치할 필요없이 다른 사이트와 함께 사용할 수 있습니다.


8

Mac OS X를 사용하는 경우 다음을 통해 ca-cert-bundle을 설치할 수 있습니다 homebrew.

$ brew install curl-ca-bundle
$ git config --system http.sslcainfo /usr/local/share/ca-bundle.crt

수식 은 다음을 통해 공유에 인증서 번들을 설치합니다.

share.install 'ca-bundle.crt'

share방법은의 별칭 /usr/local/share일 뿐이며 curl-ca-bundle 은에서 제공합니다 Mozilla. 많은 문제에서 참조되는 내용입니다. Mac OS X 에서이 방법에 대해 간단하지 않기 때문에 이것이 도움이되기를 바랍니다.brew install curl 그것의로 그다지 당신을 얻을하지 않을 경우에만 통하고 연결되지 않습니다 실행 ( which curl는 항상 출력이 /usr/bin/curl기본이며, 그와 함께 제공하여 OS). 이 게시물의 가치가있을 수도 있습니다 .

물론 homebrewgit repo이기 때문에 설치하기 전에 SSL을 비활성화해야합니다 . SSL 확인 중에 오류가 발생했을 때 curl이 말한 것을 수행하고 다음을 수행하십시오.

$ echo insecure >> ~/.curlrc

homebrew와 함께 설치 되면 github에서 저장소를 curl-ca-bundle삭제 .curlrc하고 복제하십시오. 오류가 없는지 확인하십시오.

노트: 경우 .curlrc테스트가 완료되는 즉시 시스템에서 제거하십시오. 이 파일은 중요한 문제를 일으킬 수 있으므로 임시 목적으로주의해서 사용하십시오. brew doctor시스템에서 제거하는 것을 잊어 버린 경우 불만을 제기합니다).

노트: git 버전을 업데이트하면 시스템 설정이 지워지기 때문에이 명령을 다시 실행해야합니다 (버전에 따라 git 바이너리와 관련하여 저장 됨).

따라서 실행 한 후 :

$ brew update
$ brew upgrade

새로운 버전의 git을 얻으면 다시 실행하십시오.

$ git config --system http.sslcainfo /usr/local/share/ca-bundle.crt

그리고 모든 준비가 끝났습니다.

마지막으로 새 버전의 git이 있으면 다음을 실행하십시오.

$ git config -l --system

의 라인을 따라 오류를 제공해야합니다

fatal: unable to read config file '/usr/local/Cellar/git/1.8.2.2/etc/gitconfig'

그것이 git에게 Mozilla ca 번들이 어디에 있는지 알려주는 팁입니다.

최신 정보:

.curlrc문제에 대한 해결책 일 수도 있고 아닐 수도 있습니다. 어쨌든 수동으로 다운로드해야하는지 여부에 관계없이 컴퓨터에 Mozilla ca-bundle을 설치하십시오. 그것이 여기서 중요한 것입니다. ca-bundle을 얻으면 갈 수 있습니다. git config 명령을 실행하고 git을 ca 번들로 지정하십시오.

최신 정보

최근에 추가해야했습니다.

export CURL_CA_BUNDLE=/usr/local/share/ca-bundle.crt.zshenv사용하고 있기 때문에 내 도트 파일에 zsh. 이 git config옵션은 대부분의 경우 효과적이지만 SSL을 통해 github ( rvm get stable예 : github)을 칠 때 여전히 인증서 문제가 발생했습니다. @Maverick은 자신의 의견에서 이것을 지적했지만 누군가가 그것을 놓치거나 반드시 실행하는 것 외에도이 환경 변수를 내보낼 필요가 없다고 생각하는 경우를 대비하여git config --system.... 명령 . 감사하고 이것이 도움이되기를 바랍니다.

최신 정보

curl-ca-bundle최근에 homebrew에서 제거 된 것 같습니다 . 여기에 권장 사항이 있습니다 .

일부 파일을 다음으로 드롭하려고합니다.

$(brew --prefix)/etc/openssl/certs


1
다음을 시도해 볼 수도 있습니다. export CURL_CA_BUNDLE=/usr/local/share/ca-bundle.crt
Maverick

안녕하세요, 비슷한 문제가 있고 ( stackoverflow.com/questions/20939105/… )자가 양조장을 설치하려고 할 때도 같은 문제가 나타납니다. 이 경우 어떻게해야합니까? 콘솔에 "git config --system http.sslcainfo /usr/local/share/ca-bundle.crt"를 입력하면 "오류 : 구성 파일 /Applications/Xcode.app/Contents/Developer/usr/etc/를 잠글 수 없습니다 gitconfig : 해당 파일이나 디렉토리가 없습니다. " 도와 주셔서 감사합니다!
Mathieu

@Mathieu 그것은 꽤 이상합니다. 시스템이 XCode에 상대적인 git 버전을 가리키는 것 같습니다. 터미널에서 'git'을 실행하면 어떤 결과가 발생합니까?
A-Dubb

6

터미널 에서이 명령을 시도 할 수 있습니다 .

git config --global http.sslVerify false


5

apt-cyg (apt-get과 비슷한 훌륭한 설치 프로그램)를 사용하여 ca 인증서 를 쉽게 다운로드하기 위해이 문제를 해결했습니다 (Git 및 기타 포함).

apt-cyg install ca-certificates

참고 : apt-cyg를 먼저 설치해야합니다. Windows 명령 행에서이를 수행 할 수 있습니다.

cd c:\cygwin
setup.exe -q -P wget,tar,qawk,bzip2,subversion,vim

Windows cmd를 닫고 Cygwin Bash를 엽니 다.

wget rawgit.com/transcode-open/apt-cyg/master/apt-cyg
install apt-cyg /bin

이것은 나를 위해 작동하지 않았다-나는 여전히 같은 오류가 발생합니다.
holdenlee

4

내가 가진 rasbery pi에

pi @ raspbmc : ~ $ git clone http : //github.com/andreafabrizi/Dropbox-Uploader .git 'Dropbox-Uploader'로 복제 중 ... 오류 : 액세스하는 동안 SSL CA 인증서 문제 (경로? 액세스 권한?) http://github.com/andreafabrizi/Dropbox-Uploader.git/info/refs 치명적 : HTTP 요청 실패

그래서 id

sudo apt-get install ca-certificates

그때

git clone http://github.com/andreafabrizi/Dropbox-Uploader.git  

일했다


4

데비안 기반 OS를 사용했다면 간단하게 실행할 수 있습니다

apt-get 설치 인증서


4

Solaris Express 11에서도 이와 동일한 문제가 발생했습니다. 시간이 걸렸지 만 인증서를 배치해야하는 위치를 찾을 수있었습니다. /etc/openssl/openssl.cnf에 따르면 인증서 경로는 / etc / openssl / certs입니다. Alexey의 위의 조언을 사용하여 생성 된 인증서를 배치했습니다.

명령 행에서 openssl을 사용하여 작업 중인지 확인할 수 있습니다.

openssl s_client -connect github.com:443

3

.netrc 파일을 사용해보십시오. https를 통해 인증됩니다. .netrc홈 디렉토리에 파일 호출 을 작성 하고 여기에 넣으십시오.

machine github.com login myusername password mypass

자세한 내용은이 게시물을 참조하십시오.

https://plus.google.com/u/0/104462765626035447305/posts/WbwD4zcm2fj


이것은 인증 문제가 아닌 인증서 유효성 검사 문제입니다. 일부 운영 체제 (OP가 실행하는 운영 체제 포함)에는 CA가 발급하는 github의 새 인증서가 주식 목록에 포함되어 있지 않습니다.
Charles Duffy

3

Windows cmd에서 GIT / curl ssl 확인을 일시적으로 비활성화하여 RouMao 솔루션을 개선하십시오.

set GIT_SSL_NO_VERIFY=true
git config --global http.proxy http://<your-proxy>:443

이 솔루션의 장점은 현재 cmd 창에서만 적용된다는 것입니다.


3
이것은 매우 위험합니다! SSL 인증서 확인의 핵심은 HTTPS를 통해 코드를 전송할 때 코드가 변경되지 않도록 보호하는 것입니다! 이를 비활성화하면 악의적 인 사용자가 코드를 푸시하고 가져올 때 취약점 및 기타 불쾌한 것들을 코드에 삽입 할 수 있습니다.

3

시간을 확인 했습니까?

나는 내 자식 작업을 안전하지 않게 거부했으며 여기에 언급 된 모든 것을 시도한 후에 인증서가 확인을 통과하지 못하는 가능한 원인 중 하나는 날짜가 잘못되었다는 것입니다 (인증서 만료 날짜 또는 로컬 시계).

date터미널 에 입력하면 쉽게 확인할 수 있습니다 . 필자의 경우 (새로운 라즈베리 파이) 현지 시계는 1970으로 설정되었으므로 ntpdate -u 0.ubuntu.pool.ntp.org모든 것이 간단하게 고정되었습니다. rPi의 경우 다음 스크립트를 매일 cron 작업 (예 :)에 넣는 것이 좋습니다 /etc/cron.daily/ntpdate.

#!/bin/sh
/usr/sbin/ntpdate -u 0.ubuntu.pool.ntp.org 1> /dev/null 2>&1

3

Github에서 액세스 토큰을 생성하고 다시 나타나지 않기 때문에 저장하십시오.

git -c http.sslVerify=false clone https://<username>:<token>@github.com/repo.git

또는,

git config --global http.sslVerify false
git clone https://github.com/repo.git

2

공동 개발 플랫폼에서 Git을 구성하는 것과 동일한 문제가 발생했습니다.

그것을 해결하려면 :

  • 서버에 설치된 Curl 릴리스를 업데이트했습니다. 웹 사이트에서 최신 버전 다운로드 컬의 다운로드 페이지를 하고 설치 절차에 따라 컬의 설치 절차를

  • 서버에 대한 인증서를 제공하는 기관의 인증서를 다시 가져옵니다.

  • curl에서 사용하는 CAcert 파일에이 인증서를 추가하십시오. 내 서버에서는에 있습니다 /etc/pki/tls/certs/ca-bundle.crt.

  • .gitconfig 파일을 편집하여이 인증서 파일을 사용하도록 git을 구성하고 sslcainfo 경로를 설정하십시오. sslcainfo= /etc/pki/tls/certs/ca-bundle.crt

  • 클라이언트 시스템에서 인증서를 가져 와서 .gitconfig 파일도 구성해야합니다.

이것이 당신의 일부를 도울 수 있기를 바랍니다.


1

나는 모든 것을 시도했지만 결국 hosts 파일을 보았고 github에 대한 임의의 항목이있었습니다. 별명을 제거하면 문제가 해결되었습니다.

% systemroot % \ system32 \ drivers \ etc \ hosts


1

SSL 인증서 인증을 비활성화하고 아래 표시된 것처럼 간단한 사용자 이름 비밀번호 로그인을 사용했습니다.여기에 이미지 설명을 입력하십시오


0

Cygwin 및 git에 대한 인증서 만 필요했기 때문에 @esquifit이 게시 한 것을 수행했습니다. 그러나 5 단계를 수동으로 실행해야했지만 c_rehash를 시스템에서 사용할 수 없었습니다. 나는이 가이드를 따랐다 : OpenSSL 프레임 워크에 CA 인증서 설치 .


0

두 가지가 필요했습니다.

  1. cygwin 설정으로 이동하여 ' ca-certificates ' 패키지 (Net 아래에 있음)를 포함하십시오 (다른 곳에 표시됨).

  2. 설치된 인증서를 찾을 위치를 git에 알려주십시오.

    GIT_SSL_CAINFO = / usr / ssl / certs / ca-bundle.crt GIT_CURL_VERBOSE = 1 자식 ...

    (자세한 옵션은 필요하지 않습니다)

    또는 옵션을 영구적으로 저장하십시오.

    자식 설정 --global http.sslCAinfo /usr/ssl/certs/ca-bundle.crt

    자식 ...


-2

나는 같은 문제가 있었다. SSL 인증을 설정 해제하기위한 인증서 가져 오기 또는 명령이 작동하지 않았습니다. 네트워크 프록시의 암호가 만료 된 것으로 나타났습니다. 프록시 구성 항목이있었습니다. 내 Windows 사용자 프로필에있는 .gitconfig 파일에 있습니다. 방금 전체 항목을 제거하고 다시 작동하기 시작했습니다.


-2

Mac OSX 10.5 시스템에서 간단한 방법으로 작동시킬 수있었습니다. 먼저 github 절차와 테스트를 실행하십시오.이 인증서는 실제로 인증서가 정상임을 보여주었습니다. https://help.github.com/articles/generating-ssh-keys

ssh -T git@github.com

그런 다음 마침내 리모컨의 또 다른 URL 형식을 발견했습니다. 위의 다른 것들을 시도했지만 작동하지 않았습니다. http://git-scm.com/book/ch2-5.html

git@github.com:MyGithubUsername/MyRepoName.git

간단한 "git push myRemoteName"은 훌륭했습니다!


-2

나는 최근에 (2014 년 7 월) 비슷한 문제가 있었고 OS X (10.9.4)에서 "DigiCert High Assurance EV Root CA"인증서가 만료되었다는 것을 발견했습니다 (만료되지 않은 인증서도 있지만).

  1. 열린 키 체인 접근
  2. "DigiCert"에 대한 인증서 검색
  3. 보기 메뉴> 만료 된 인증서 표시

"DigiCert High Assurance EV Root CA"라는 인증서가 2031 년 11 월에 만료되고 2014 년 7 월에 만료되었습니다 (몇 일 전). 만료 된 인증서를 삭제하면 문제가 해결되었습니다.

도움이 되었기를 바랍니다.


-2

Msys / MinGW GIT를 사용하는 경우 이것을 추가하십시오

  export GIT_SSL_CAINFO=/mingw32/ssl/certs/ca-bundle.crt 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.