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이 있습니다.

GitLab 업그레이드 하기

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

GitLab 업그레이드 하기

1) 개요

기존 사용하던 GitLab의 업그레이드 버전이 나와 업그레이드를 진행한 내용을 정리하기 위해 작성되었습니다.

2) 업그레이드 하기

  1. 실행중인 GitLab서비스 중지하기
    sudo gitlab-ctl stop unicorn
    sudo gitlab-ctl stop sidekiq
    sudo gitlab-ctl stop nginx
    
  2. GitLab 백업하기
    sudo gitlab-rake gitlab:backup:create
    
  3. GitLab 업그레이드하기
    sudo yum install gitlab-ce
    
  4. GitLab 레파지토리 재설정 및 서버 재시작
    sudo gitlab-ctl reconfigure
    sudo gitlab-ctl restart
    

CentOS 7 에서 GitLab 설치하기

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

CentOS 7 에서 GitLab 설치하기

1) 개요

개인적으로 VM Ware을 통해 Git서버를 구성하던 중 지인들과 같이 사용하게 되어 관리의 편의성을 위해 GitLab 구성 중 작성했던 내용을 간단하게 나마 정리하기 위해 작성되었습니다.

2) 설치하기

  1. 의존패키지 설치하기
    sudo yum install curl openssh-server postfix
    
  2. GitLab에서 사용하기 위해 ssh 및 이메일 발송 서비스(postfix) 서비스 자동실행 설정하기
    sudo systemctl enable sshd postfix
    sudo systemctl start sshd postfix
    
  3. GitLab 패키지 다운로드
    curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
    sudo yum install gitlab-ce
    
  4. GitLab 레파지토리 설치를 위한 정보 설정하기
    sudo vi /etc/gitlab/gitlab.rb
    
    • gitlab.rb에 변경할 부분(개인이 필요한 부분만 수정하면 됩니다.)
      external_url "[IP주소:포트]" //외부에서 접속할 주소 및 포트정보 수정
      git_data_dir "[GitLab 레파지토리로 사용할 경로]"
      user['username'] = "[GitLab 레파지토리 관리할 계정명]"
      user['group'] = "[GitLab 레파지토리 관리할 계정의 그룹명]“
      user[‘home’] = “[GitLab 레파지토리 관리할 계정의 홈디렉토리]”
      user[‘gid’] = “[GitLab 레파지토리 관리할 계정의 GID]” //id 명령어로 확인이 가능합니다.
      user[‘uid’] = “[GitLab 레파지토리 관리할 계정의 UID]” //id 명령어로 확인이 가능합니다.
      gitlab_rails['smtp_enable'] = true
      gitlab_rails['smtp_address'] = "[SMTP 주소]" //G-mail 예) smtp.gmail.com
      gitlab_rails['smtp_port'] = [SMTP 포트]//G-mail 예) 587
      gitlab_rails['smtp_user_name'] = "[메일 ID]"
      gitlab_rails['smtp_password'] = "[메일 비밀번호]"
      gitlab_rails['smtp_domain'] = "[SMTP 도메인]" //G-mail 예) gmail.com
      gitlab_rails['smtp_authentication'] = :plain
      gitlab_rails['smtp_enable_starttls_auto'] = true
      
  5. GitLab 레파지토리 설치하기
    sudo gitlab-ctl reconfigure
    
  6. GitLab 페이지 접속을 위한 방화벽 해제하기
    sudo firewall-cmd --permanent --add-service=http //내부 웹 서버인 Nginx 포트
    sudo firewall-cmd --zone=public --add-port=[위에서 설정한 포트]/tcp --permanent
    sudo systemctl reload firewalld
    
  7. GitLab 재시작하기
    sudo gitlab-ctl restart
    
    • 만약 콘솔의 표시정보가 이상하게 변했다면 아래 내용 적용하기
      sudo vi /etc/profile
      
      아래 내용 추가
      export PS1="[\u@\h \w]\\$ "
      
  8. GitLab 초기 설정하기
    IP주소:포트로 접속
    
    초기 관리자 계정 및 암호
    Username: root 
    Password: 5iveL!fe
    
  • GitLab 서버의 시작 / 종료 명령어
    1. GitLab 서버 시작
      sudo gitlab-ctl start
      
    2. GitLab 서버 종료
      sudo gitlab-ctl stop
      
  • 502 에러가 발생한다면 아래 내용 적용하기
    log 디렉토리에 권한이 없어서 발생한 경우가 대부분인듯 하다.
    sudo chown -R [GitLab관리계정명:GitLab관리계정그룹명] /var/log/gitlab/unicorn
    sudo chown -R [GitLab관리계정명:GitLab관리계정그룹명] /var/log/gitlab/gitlab-git-http-server
    sudo chown -R [GitLab관리계정명:GitLab관리계정그룹명] /var/log/gitlab/gitlab-rails
    sudo chown -R [GitLab관리계정명:GitLab관리계정그룹명] /var/log/gitlab/gitlab-shell
    sudo chown -R [GitLab관리계정명:GitLab관리계정그룹명] /var/log/gitlab/sidekiq
    이 외에도 /var/opt/gitlab 부분도 확인해보기.
    

* GitLab은 내부적으로 Nginx가 80포트, Unicorn이 8080포트, GitLab의 지정된 포트 3가지 정도를 사용하게 된다.

Nav