Self‑Signed Certificate를 사용하여 GitLab 리포지토리 복제하는 방법

발행: (2026년 2월 1일 오후 05:52 GMT+9)
4 분 소요
원문: Dev.to

Source: Dev.to

문제 개요

자체 서명된 SSL 인증서를 사용하는 GitLab 인스턴스에서 HTTPS로 클론할 때 다음과 같은 오류가 발생할 수 있습니다:

fatal: unable to access 'https://gitlab.example.com/group/project.git/': 
server certificate verification failed. CAfile: none CRLfile: none

Git은 기본적으로 자체 서명된 인증서를 신뢰하지 않으므로, 인증서를 명시적으로 신뢰하도록 설정하지 않으면 HTTPS 연결이 거부됩니다.

자체 서명 인증서 내보내기

Chrome 사용

  1. Chrome에서 GitLab URL을 엽니다: https://gitlab.example.com

  2. 자물쇠 아이콘을 클릭 → Connection is secureCertificate is valid.

  3. Details 탭으로 이동 → Export….

  4. 인증서를 영구적인 위치에 gitlab-selfsigned.crt 이름으로 저장합니다:

    • Windows: C:\certs\gitlab-selfsigned.crt
    • Linux/macOS: /home/username/certs/gitlab-selfsigned.crt

Firefox 사용

  1. Firefox에서 about:preferences#privacy를 엽니다.
  2. Certificates 섹션까지 스크롤한 뒤 View Certificates를 클릭합니다.
  3. Servers 탭에서 gitlab.example.com을 찾아 선택하고 **Export…**를 클릭합니다.
  4. 파일을 gitlab-selfsigned.crt 이름으로 저장합니다.

OpenSSL 사용 (모든 플랫폼)

openssl s_client -connect gitlab.example.com:443 -showcerts 2>/dev/null \
| openssl x509 -outform PEM > gitlab-selfsigned.crt

위 명령은 GitLab에서 직접 인증서를 가져와 현재 디렉터리의 gitlab-selfsigned.crt 파일에 저장합니다.

Git에 인증서 신뢰하도록 설정

# Windows 예시
git config --global http.sslCAInfo "C:/certs/gitlab-selfsigned.crt"

# Linux/macOS 예시
git config --global http.sslCAInfo "/home/username/certs/gitlab-selfsigned.crt"

설정 확인

git config --global --get http.sslCAInfo

위 명령은 방금 설정한 경로를 출력해야 합니다.

HTTPS로 저장소 클론

git clone https://gitlab.example.com/group/project.git

인증서를 신뢰하도록 설정했으므로 SSL 오류 없이 클론이 성공합니다.

SSH 사용 (인증서 문제 없음)

SSH 키 생성

ssh-keygen -t ed25519 -C "your_email@example.com"

공개 키 추가

~/.ssh/id_ed25519.pub 파일을 GitLab User Settings → SSH Keys → Add Key를 통해 추가합니다.

SSH로 클론

git clone git@gitlab.example.com:group/project.git

SSL 검증 일시적으로 비활성화 (권장되지 않음)

git config --global http.sslVerify false

⚠️ Warning: 검증을 비활성화하면 보안이 취약해져 MITM 공격에 노출됩니다. 단기적인 문제 해결 단계에서만 사용하고, 절대 프로덕션 환경에서는 사용하지 마세요.

PyCharm에서 Git 설정

  1. File → Settings → Version Control → Git을 엽니다.
  2. Path to Git executable이 앞서 설정한 Git 실행 파일을 가리키는지 확인합니다.
  3. Test 버튼을 눌러 실행 파일이 정상 동작하는지 확인합니다.
  4. HTTPS를 사용할 경우, PyCharm이 사용하는 Git에도 동일한 http.sslCAInfo 설정이 적용되었는지 확인하거나, SSH로 전환합니다.

자체 서명 GitLab을 위한 권장 워크플로우

  1. 자체 서명 인증서를 내보냅니다 (Chrome, Firefox, OpenSSL 중 선택).
  2. http.sslCAInfo가 내보낸 .crt 파일을 가리키도록 Git을 전역 설정합니다.
  3. HTTPS로 저장소를 클론하거나, 인증서 처리를 완전히 피하기 위해 SSH를 사용합니다.
  4. 절대로 http.sslVerify를 영구적으로 비활성화하지 마세요.
Back to Blog

관련 글

더 보기 »