Github 전용 SSL 인증서 추가 (인증서 패키지의 모든 인증서가 아님)


13

HTTPS를 통해 Github에 액세스 할 때 다음 오류가 발생합니다.

error: server certificate verification failed. 
CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none

에에 인증서가 없기 때문입니다 /etc/ssl/certs/. 이 문제를 해결하는 방법을 알고 있습니다. ca-certificates데비안 저장소 에서 패키지 를 설치할 수 있습니다 . 그러나 문제는 이것이 내가 수락 / 신뢰하고 싶지 않은 모든 인증서 (수천)를 설치한다는 것입니다.

Github 인증서 만 설치하려면 어떻게해야합니까?

하위 문제 / 질문

패키지 ca-certificates가 이미 설치되어 있고 git이 작동 하는 다른 컴퓨터에서 /etc/ssl/certs/파일의 일부 인증서는 파일 당 하나의 인증서이고 다른 인증서는 파일 하나의 인증서입니다. Github 인증서를 /etc/ssl/certs/ca-certificates.crt포함 하는 특정 파일 에는 150 개 이상의 다른 인증서가 포함됩니다.

$ grep 'BEGIN CERTIFICATE' /etc/ssl/certs/ca-certificates.crt | wc -l
159

이 159 인증서 중 어떤 인증서가 필요한 인증서를 어떻게 찾을 수 있습니까? (파일을 반으로 자르고 두 반쪽을 확인하고 반복하는 무차별 강제 이외 while n > 1).


무엇을 이루려고 노력하고 있습니까? 프로그래밍 방식으로 GitHub에 문의 하시겠습니까?
Nate W.

소스 패키지를 다운로드 한 다음 원하는 인증서 만 추출해 보셨습니까?
jayhendren 2016 년

github에 액세스하기 위해 무엇을 사용하고 있습니까? 명령 줄 도구? 브라우저?
lk-

답변:


13

Github에 액세스하려면 ssh를 통해해야합니다. 따라서 shub 공개 키를 github에 추가해야합니다. 그런 다음 ssh를 통해 github에 액세스 할 수 있습니다.

git init git@github.com:yourname/yourrepo.git

참조 : Github의 : SSH 키를 생성 , wikiHow의

[편집 # 1]

인증서 확인없이 :

GIT_SSL_NO_VERIFY=true git clone https://github.com/p/repo.git

또는 인증

GIT_SSL_NO_VERIFY=true git clone https://user@pass:github.com/p/repo.git

ca 인증서를 설치하면 문제가 해결 될 것임을 알기 때문에 나에게 요구하는 것이 여전히 명확하지 않습니다.

[편집 # 2]

다른 질문은

https를 통해 github.com에 액세스하는 데 필요한 인증서 만 갖는 방법

  1. 브라우저를 열고 https://github.com/으로 이동 하십시오 . 왼쪽의 녹색 이름을 클릭 https://하고을 클릭하십시오 Certificates. 온 Details탭, 당신은 인증서 체인을 볼 수 있습니다 :

    DigiCert ...
      DigiCert ...
       github.com ...
    
  2. 각 DigiCert 인증서를 파일로 내 보냅니다.

  3. 파일을 복사 /etc/ssl/certs/
  4. c_rehash어떤 고양이에게 모든 인증서를 실행ca-certificates.crt
  5. 당신은 끝났습니다.

내가 말했듯이, github은 언제든지 CA를 변경할 수 있으므로 항상 추가 작업이 발생하기 때문에 그러한 행동의 친구가 아닙니다.


1
제안 해 주셔서 감사합니다. 하지만를 github통해 액세스하고 싶습니다 https.
Martin Vegter

1

이전에 제안했듯이 HTTPS를 사용하는 대신 SSH 키를 사용하여이 문제를 피하고 더 나은 보안을 누릴 수 있습니다.

나는 당신이 찾고있는 것이 / etc / ssl / certs에 루트 / CA 인증서를 설치하는 방법이라고 생각합니다. 간단히 말해 PEM으로 인코딩 된 파일을 / etc / ssl / certs에 덤프하는 것만으로는 충분하지 않습니다. 또한 해당 인증서의 해시를 계산하고 / etc / ssl / certs에서 해당 인증서에 대한 심볼릭 링크를 만들어야합니다. 파일. 심볼릭 링크의 이름은 .0으로 접미사가 붙거나 해시 충돌이있는 경우 .1 등이어야합니다.

다음은 프로세스를 자동화하는 데 사용할 수있는 샘플 스크립트뿐만 아니라 자세한 설명입니다. http://wiki.openwrt.org/doc/howto/wget-ssl-certs#adding.root.certificates

이것이 당신이 찾고있는 것이기를 바랍니다. 그러나 앞에서 언급했듯이 SSH 키는 아마도 "더 나은"솔루션입니다. :)


c_rehash당신이 설명한 것을하고 있습니다. c_rehash매뉴얼 페이지를 참조 하십시오. BTW : 해시를 계산할 필요가 없습니다. git이 파일 만 읽으므로 인증서를 ca-certificates.crt로 분류하면 충분 합니다. 또한이 링크는 openssl을 사용하여 인증서를 수동으로 얻는 방법을 설명했습니다. 이것은 매우 의심스럽고 중간 공격에서 사람을 유발합니다. 나는 그것을 추천하지 않을 것입니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.