SSL 인증서 문제: 인증서 체인의 자체 서명된 인증서

SSL 인증서 문제: 인증서 체인의 자체 서명된 인증서

방화벽 뒤에서 크롬을 사용하여 다음과 같이 github 저장소에 액세스할 수 있습니다. https://github.com/Squirrel/Squirrel.Windows

Chrome은 이 액세스를 위해 인증서를 사용합니다. 다음을 사용하여 동일한 URL에 액세스하려고 하면Git확장, 다음 오류가 발생합니다.

SSL 인증서 문제: 인증서 체인의 자체 서명된 인증서

GitExtensions가 인증서를 사용하여 액세스를 허용하도록 할 수 있나요?

편집: 추가 정보:

내 컴퓨터에는 mysysGit이 표시되지 않지만 mingw/curl은 표시되므로 Git이 이를 사용하고 있다고 가정합니다. 이들은 인증서 체인을 구축할 때 Windows 신뢰 인증서를 사용하지 않는 것으로 보입니다. 내가 얻는 오류, SSL 인증서 문제: 인증서 체인의 자체 서명된 인증서는 Git/Github에서 사용하는 루트 인증서가 내장된 CA(인증 기관) 루트 번들에 없음을 나타냅니다. @Akber Choudhry가 지적했듯이 Github SSL 서버에서 제공하는 인증서 체인의 루트인 CA 인증서는 다음과 같습니다. DigiCert 높은 보증 EV 루트 CAC:\Program Files (x86)\Git\bin\curl-ca-bundle.crt에 해당 CA가 표시됩니다.

문제가 GitExtensions가 아닌 Git에 있는지 확인하기 위해 명령줄에서 다음을 수행했습니다.

 >>git clone https://github.com/Squirrel/Squirrel.Windows.git

그리고 동일한 SSL 인증서 문제 오류가 발생했습니다.

Git이 이 인증서를 사용하지 않는 것처럼 보이므로 다음과 같이 Git을 구성해 보았습니다.

>>git config --system http.sslcainfo "C:\Program Files (x86)\Git\bin\curl-ca-bundle.crt"

하지만 이건 효과가 없었어요..

답변1

방화벽 뒤에서 ...github ... Chrome은 이 액세스를 위해 인증서를 사용합니다.

이 설명을 바탕으로 나는 "우리" 인증서가 Github의 원본 인증서가 아니라 연결 중간에 있는 사람에게 자체("우리") 인증서를 생성하는 SSL 검사 기능이 있는 방화벽을 사용하고 있다고 가정합니다. 이 인증서를 발급한 방화벽의 CA(프록시 CA)는 아마도 Windows Trust Store에 추가되어 있으며 이 Chrome은 이를 신뢰합니다.

그러나 Git은 Windows Trust Store를 사용하지 않으므로 이 프록시 CA에 대해 알지 못합니다. 따라서 Github용 인증서를 발급한 원래 CA가 아니라 방화벽에서 사용하는 프록시 CA를 Git용 CA 저장소에 추가해야 합니다.

답변2

Chrome을 사용하고 HTTPS를 통해 Github에 액세스하면 브라우저와 Windows에 내장된 루트 인증서에 대해 Github의 인증서 체인을 확인하는 것뿐입니다.

내부적으로 Gitextensions는 인증서 체인을 구축할 때 Windows 신뢰 인증서를 참조하지 않는 msysgit을 사용합니다.

오류를 보면 Github에서 사용하는 루트 인증서가 내장된 인증 기관(CA) 루트 번들에 없는 것으로 나타납니다. 이는 Gitextensions가 이전 버전의 msysgit 또는 컬을 번들로 제공하기 때문일 수 있습니다.

msysgit은 CA 번들에 포함되어 DigiCert High Assurance EV Root CA있으며 수년 동안 존재해 왔습니다. 파일에서 이 문자열을 검색하세요.bin/curl-ca-bundle.crt

컴퓨터에 이전 버전의 msysgit 또는 mingw 도구가 설치되어 있는지 확인하세요. 그렇다면 청소하고 다시 설치하십시오. 마지막으로 인증서를 추가해야 하는 경우 msysgit 인증서 추가 절차를 참조하세요.

관련 정보