GitLab Pages Let’s Encrypt 인증서

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

GitLab Pages와 Let’s Encrypt(LE)의 통합을 통해 사용자는 커스텀 도메인으로 페이지 웹사이트의 LE 인증서를 사용할 수 있으며, 직접 인증서를 발급하고 업데이트할 필요 없이 GitLab이 사용자를 대신해 이를 처리합니다.

Let’s Encrypt는 무료이며, 자동화되어 있으며, 오픈 소스인 인증 기관입니다.

caution
이 기능은 커스텀 도메인에 대한 인증서만 다룹니다. 와일드카드 인증서는 Pages 데몬 (Self-managed, Free, Premium, Ultimate) 실행에 필요합니다. 와일드카드 인증서 생성은 이 이슈에서 추적됩니다.

사전 조건

도메인의 SSL 인증서를 자동으로 프로비저닝하려면 다음을 확보하세요:

  • GitLab에 프로젝트가 생성되어 있어야 합니다. 그 프로젝트는 웹사이트의 소스 코드를 포함해야 합니다.
  • 도메인(example.com)을 확보했고, DNS 항목을 추가하여 해당 도메인이 페이지 웹사이트를 가리키도록 해야 합니다. 최상위 도메인(.com)은 공개 접미어여야 합니다.
  • 페이지 프로젝트에 도메인을 추가하고 소유권을 확인했어야 합니다.
  • 웹사이트가 커스텀 도메인을 통해 정상적으로 실행되고 접근 가능한지 확인했어야 합니다.

GitLab과 Let’s Encrypt의 통합은 GitLab.com에서 활성화되어 있습니다. Self-managed GitLab 인스턴스의 경우, 관리자가 이를 활성화했는지 확인하세요.

커스텀 도메인의 Let’s Encrypt 통합 활성화

모든 사전 조건을 충족했다면, 아래 단계에 따라 Let’s Encrypt 통합을 활성화하세요:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하여 프로젝트를 찾습니다.
  2. 배포 > Pages를 선택합니다.
  3. 도메인 이름 옆에 있는 편집을 선택합니다.
  4. Let’s Encrypt를 사용한 자동 인증서 관리 토글을 켭니다.

    Let's Encrypt 활성화

  5. 변경사항 저장을 선택합니다.

활성화하면 GitLab이 LE 인증서를 획득하고 해당 Pages 도메인에 추가합니다. 또한 GitLab이 자동으로 갱신합니다.

참고:

  • 인증서 발급 및 Pages 구성 업데이트에는 최대 1시간이 소요될 수 있습니다.
  • 도메인 설정에 이미 SSL 인증서가 있는 경우, 이를 Let’s Encrypt 인증서로 대체될 때까지 계속 작동합니다.

문제 해결

“Let’s Encrypt 인증서 획득 중 오류 발생” 오류

“Let’s Encrypt 인증서 획득 중 오류 발생” 오류가 발생하면 먼저 프로젝트의 설정 > 일반 > 가시성에서 페이지 사이트의 가시성을 “모두에게”로 설정했는지 확인하세요. 이렇게 하면 Let’s Encrypt 서버가 페이지 사이트에 연결될 수 있습니다. 이 확인이 완료되면 다음 단계를 따라 인증서를 다시 획득할 수 있습니다:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하여 프로젝트를 찾습니다.
  2. 배포 > Pages를 선택합니다.
  3. 도메인 이름 옆에 있는 편집을 선택합니다.
  4. 확인 상태에서 재시도 확인을 선택합니다 ().
  5. 여전히 동일한 오류가 발생하는 경우:
    1. 도메인에 CNAME 또는 A DNS 레코드가 올바르게 하나만 설정되어 있는지 확인합니다.
    2. 도메인에 AAAA DNS 레코드가 없는지 확인합니다.
    3. 도메인 또는 상위 도메인에 CAA DNS 레코드가 있는 경우, 여기에 letsencrypt.org가 포함되어 있는지 확인합니다.
    4. 도메인이 확인되었는지 확인합니다.
    5. 단계 1로 돌아갑니다.

“GitLab이 이 도메인에 Let’s Encrypt SSL 인증서를 획득하고 있습니다. 이 작업에는 시간이 소요될 수 있습니다. 나중에 다시 시도하세요.” 메시지가 1시간 이상 동안 유지됨

Let’s Encrypt 통합을 활성화했지만 1시간 이상 경과된 후에도 인증서가 없는 경우 “GitLab이 이 도메인에 Let’s Encrypt SSL 인증서를 획득하고 있습니다. 이 작업에는 시간이 소요될 수 있습니다. 나중에 다시 시도하세요.” 메시지가 표시되면, Pages 도메인을 제거하고 다시 추가한 후 다음 단계를 따라 시도하세요:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하여 프로젝트를 찾습니다.
  2. 배포 > Pages를 선택합니다.
  3. 도메인 이름 옆에 있는 제거를 선택합니다.
  4. 도메인을 다시 추가하고 확인합니다.
  5. 도메인의 Let’s Encrypt 통합을 활성화하세요.
  6. 여전히 동일한 오류가 발생하는 경우:
    1. 도메인에 CNAME 또는 A DNS 레코드가 올바르게 하나만 설정되어 있는지 확인합니다.
    2. 도메인에 AAAA DNS 레코드가 없는지 확인합니다.
    3. 도메인 또는 상위 도메인에 CAA DNS 레코드가 있는 경우, 여기에 letsencrypt.org가 포함되어 있는지 확인합니다.
    4. 단계 1로 돌아갑니다.