Github 전용 SSL 인증서 추가 (인증서 패키지의 모든 인증서가 아님) 인증서 만 설치하려면 어떻게해야합니까? 하위 문제 /

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에 액세스하려면 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를 변경할 수 있으므로 항상 추가 작업이 발생하기 때문에 그러한 행동의 친구가 아닙니다.


답변

이전에 제안했듯이 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 키는 아마도 “더 나은”솔루션입니다. 🙂