GitLab에 HTTPS 보안 적용을 위한 OpenSSL 설정하기

Version Control/Git 2015. 11. 10. 00:51 by 후뤼한잉여

GitLab에 HTTPS 보안 적용을 위한 OpenSSL 설정하기

1) 개요

HTTP로 사용중 OpenSSL 기술을 적용해보고자 설정한 내용을 정리하기 위해 작성되었습니다.

2) 인증서 생성하기

  1. 개인키 생성하기
    sudo openssl genrsa -des3 -out [설정 파일 이름].key 1024 //일반적으로 server.key를 사용
    
  2. CSR 파일 생성하기
    개인 인증기관 파일인듯하고 나중에 정리하겠습니다.
    openssl req -new -days 365 -key [설정 파일 이름].key -out [설정 파일 이름].csr
    
    Country Name = [KR]
    State or Province Name = [시 이름]
    Locality Name = [구 이름]
    Organization Name = [회사명]
    Organizational Unit Name = [부서명] //공백 가능
    Common Name = [사용하는 도메인 이름]
    Email = [이메일 주소]
    Challenge password = [] //공백 가능
    optional company name = [] //공백 가능
    
  3. 개인키 파일에 암호 제거하기
    cp [설정 파일 이름].key [설정 파일 이름].key.org //백업
    openssl rsa -in [설정 파일 이름].key.org -out [설정 파일 이름].key
    
  4. 공유키(인증서) 생성하기
    openssl x509 -req -days 365 -in [설정 파일 이름].csr -signkey [설정 파일 이름].key -out [설정 파일 이름].crt
    

3) GitLab에 HTTPS 적용하기

  1. GitLab 설정파일 수정하기
    sudo vi /etc/gitlab/gitlab.rb
    
    • gitlab.rb에 수정할 내용
      external_url '[HTTP를 HTTPS로 변경]'
      nginx['redirect_http_to_https'] = true
      nginx['redirect_http_to_https_port'] = [포트번호] //HTTP 주소로 접속하면 HTTPS로 리다이렉트 시켜주는 옵션이다.
      
  2. SSL 디렉토리 생성 및 키 적용하기
    sudo mkdir -p /etc/gitlab/ssl
    sudo chmod 700 /etc/gitlab/ssl
    sudo mv [설정 파일 이름].crt /etc/gitlab/ssl
    sudo mv [설정 파일 이름].key /etc/gitlab/ssl
    
  3. HTTPS 방화벽 해제하기
    sudo firewall-cmd --add-service=https --permanent
    sudo firewall-cmd --reload
    
  4. GitLab 레파지토리 재설정하기
    sudo gitlab-ctl reconfigure
    
  • Git Client 사용자 SSL 인증 오류시 아래 내용 중 선택하여 적용하기
    1. SSL 검증 안하는 방법
      git config --global http.sslVerify false
      
    2. 제대로된 인증기관으로부터 인증 받는 방법

      대부분 유료이지만 간혹 무료로 인증해주는 곳도 있습니다.
      대표적인 무료 SSL 사이트는 StartSSL이 있습니다.

Nav