GitLab Pages Let's Encrypt 인증서
GitLab v19.5Offering: GitLab.com, GitLab Self-Managed
요약
Let's Encrypt(LE)와 GitLab Pages의 통합을 사용하면 사용자 정의 도메인을 쓰는 Pages 웹사이트에 LE 인증서를 적용하면서도 직접 발급하고 갱신하는 번거로움을 겪지 않아도 됩니다. Let's Encrypt는 무료이며 자동화된 오픈 소스 인증 기관입니다.
Let's Encrypt(LE)와 GitLab Pages의 통합을 사용하면 사용자 정의 도메인을 쓰는 Pages 웹사이트에 LE 인증서를 적용하면서도 직접 발급하고 갱신하는 번거로움을 겪지 않아도 됩니다. GitLab이 기본 제공 기능으로 대신 처리합니다.
Let's Encrypt는 무료이며 자동화된 오픈 소스 인증 기관입니다.
이 기능은 사용자 정의 도메인에 대한 인증서만 적용하며, Pages 데몬 실행에 필요한 와일드카드 인증서에는 적용되지 않습니다(GitLab Self-Managed, Free, Premium, Ultimate 전용). 와일드카드 인증서 생성은 이 이슈에서 추적됩니다.
사전 요구 사항#
도메인에 대한 SSL 인증서 자동 프로비저닝을 켜기 전에 다음을 확인합니다:
- 웹사이트 소스 코드가 담긴 GitLab 프로젝트를 생성했습니다.
- 도메인(
example.com)을 취득하고 Pages 웹사이트를 가리키는 DNS 항목을 추가했습니다. 최상위 도메인(.com)은 공개 접미사여야 합니다. - Pages 프로젝트에 도메인을 추가하고 소유권을 확인했습니다.
- 웹사이트가 실행 중이며 사용자 정의 도메인으로 접근할 수 있는지 확인했습니다.
Let's Encrypt와 GitLab의 통합은 GitLab.com에서 켜져 있습니다. GitLab Self-Managed 인스턴스의 경우 관리자가 켰는지 확인합니다.
사용자 정의 도메인에 대한 Let's Encrypt 통합 활성화#
요구 사항을 충족한 후 Let's Encrypt 통합을 켭니다:
-
상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
-
왼쪽 사이드바에서 Deploy > Pages를 선택합니다.
-
도메인 이름 옆에서 Edit (✏️)을 선택합니다.
-
Automatic certificate management using Let's Encrypt 토글을 켭니다.

-
Save changes를 선택합니다.
켜면 GitLab이 Let's Encrypt 인증서를 받아 연결된 Pages 도메인에 추가합니다. GitLab은 인증서를 자동으로 갱신하기도 합니다.
인증서를 발급하고 Pages 구성을 업데이트하는 데 최대 한 시간이 걸릴 수 있습니다. 도메인 설정에 이미 SSL 인증서가 있으면 Let's Encrypt 인증서로 교체될 때까지 계속 작동합니다.
문제 해결#
Let's Encrypt 인증서를 받는 중에 문제가 발생했습니다#
Something went wrong while obtaining the Let's Encrypt certificate 오류가 표시될 수 있습니다.
이 문제는 Let's Encrypt가 도메인에 도달하거나 검증할 수 없을 때 발생합니다.
이 문제를 해결하려면:
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > General을 선택합니다.
- Visibility, project features, permissions를 확장합니다.
- Pages 아래 드롭다운 목록에서 Everyone With Access를 선택합니다.
- Deploy > Pages > Domains & settings를 선택합니다.
- 도메인 이름 옆에서 Edit (✏️)을 선택합니다.
- Verification status에서 Retry verification ([retry])을 선택합니다.
동일한 오류가 발생하면 다음을 확인합니다:
- 도메인에 대해
CNAME또는ADNS 레코드를 하나만 설정했는지 확인합니다. - 도메인에
AAAADNS 레코드가 없는지 확인합니다. - 도메인 또는 상위 도메인에
CAADNS 레코드가 있으면letsencrypt.org가 포함되어 있는지 확인합니다. - 도메인이 검증되었는지 확인합니다.
- 병렬 배포를 사용한다면 기본 배포의
path_prefix가 비어 있는지 확인합니다. 비어 있지 않은path_prefix(예:latest)는/.well-known/acme-challenge경로가 제공되지 않게 막습니다.
Deploy > Pages 설정으로 돌아가서 검증을 다시 시도합니다.
인증서 취득이 한 시간 이상 걸림#
Let's Encrypt 통합을 켰는데 한 시간이 지나도 인증서가 없고 다음 메시지가 표시되는 경우가 있습니다:
GitLab is obtaining a Let's Encrypt SSL certificate for this domain.
This process can take some time. Please try again later.
다음 단계에 따라 GitLab Pages 도메인을 제거하고 다시 추가합니다:
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Deploy > Pages를 선택합니다.
- 도메인 이름 옆에서 Remove를 선택합니다.
- 도메인을 다시 추가하고 검증합니다.
- 도메인에 대한 Let's Encrypt 통합을 켭니다.
- 여전히 같은 오류가 발생하는 경우:
- 도메인에 대해
CNAME또는ADNS 레코드를 하나만 올바르게 설정했는지 확인합니다. - 도메인에
AAAADNS 레코드가 없는지 확인합니다. - 도메인 또는 상위 도메인에
CAADNS 레코드가 있으면letsencrypt.org를 포함하는지 확인합니다. - 1단계로 이동합니다.
- 도메인에 대해