InfoGrab DocsInfoGrab Docs

Pages 도메인 API

요약

이 API를 사용해 GitLab Pages 도메인을 관리합니다. 이 엔드포인트를 사용하려면 GitLab Pages 기능이 활성화되어 있어야 합니다. 인스턴스의 모든 Pages 도메인을 나열합니다. 성공하면 200을 반환하며 응답 속성은 다음과 같습니다.

이 API를 사용해 GitLab Pages 도메인을 관리합니다.

이 엔드포인트를 사용하려면 GitLab Pages 기능이 활성화되어 있어야 합니다. 이 기능의 관리와 사용에 대한 자세한 내용을 확인할 수 있습니다.

모든 Pages 도메인 목록 조회#

인스턴스의 모든 Pages 도메인을 나열합니다.

사전 요구 사항:

  • 인스턴스에 대한 관리자 접근 권한이 있어야 합니다.
GET /pages/domains

지원되는 속성:

속성 유형 필수 설명
domain string no 필터링할 GitLab Pages 사이트의 도메인입니다.

성공하면 200을 반환하며 응답 속성은 다음과 같습니다.

속성 유형 설명
domain string GitLab Pages 사이트의 커스텀 도메인 이름입니다.
url string 프로토콜을 포함한 Pages 사이트의 전체 URL 입니다.
project_id integer 이 Pages 도메인과 연결된 GitLab 프로젝트의 ID 입니다.
verified boolean 도메인이 검증되었는지 여부를 나타냅니다.
verification_code string 도메인 소유권을 검증하는 데 사용하는 고유 레코드입니다.
enabled_until date 도메인이 활성 상태로 유지되는 기한입니다. 도메인이 재검증될 때마다 주기적으로 갱신됩니다.
auto_ssl_enabled boolean 이 도메인에 Let's Encrypt를 사용한 SSL 인증서 자동 생성이 활성화되어 있는지 나타냅니다.
certificate_expiration object SSL 인증서 만료에 대한 정보입니다.
certificate_expiration.expired boolean SSL 인증서가 만료되었는지 여부를 나타냅니다.
certificate_expiration.expiration date SSL 인증서의 만료 날짜와 시간입니다.

요청 예시:

curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/pages/domains"

응답 예시:

[
  {
    "domain": "ssl.domain.example",
    "url": "https://ssl.domain.example",
    "project_id": 1337,
    "verified": true,
    "verification_code": "1234567890abcdef",
    "enabled_until": "2020-04-12T14:32:00.000Z",
    "auto_ssl_enabled": false,
    "certificate": {
      "expired": false,
      "expiration": "2020-04-12T14:32:00.000Z"
    }
  }
]

프로젝트의 모든 Pages 도메인 목록 조회#

지정한 프로젝트의 모든 Pages 도메인을 나열합니다. 사용자는 Pages 도메인을 조회할 권한이 있어야 합니다.

GET /projects/:id/pages/domains

지원되는 속성:

속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로

성공하면 200을 반환하며 응답 속성은 다음과 같습니다.

속성 유형 설명
domain string GitLab Pages 사이트의 커스텀 도메인 이름입니다.
url string 프로토콜을 포함한 Pages 사이트의 전체 URL 입니다.
verified boolean 도메인이 검증되었는지 여부를 나타냅니다.
verification_code string 도메인 소유권을 검증하는 데 사용하는 고유 레코드입니다.
enabled_until date 도메인이 활성 상태로 유지되는 기한입니다. 도메인이 재검증될 때마다 주기적으로 갱신됩니다.
auto_ssl_enabled boolean 이 도메인에 Let's Encrypt를 사용한 SSL 인증서 자동 생성이 활성화되어 있는지 나타냅니다.
certificate object SSL 인증서에 대한 정보입니다.
certificate.subject string SSL 인증서의 주체(subject)이며, 일반적으로 도메인 정보를 담고 있습니다.
certificate.expired date SSL 인증서가 만료되었는지(true) 또는 아직 유효한지(false)를 나타냅니다.
certificate.certificate string PEM 형식의 전체 SSL 인증서입니다.
certificate.certificate_text date 발급자, 유효 기간, 주체 등 인증서 정보를 사람이 읽을 수 있는 텍스트로 표현한 값입니다.

요청 예시:

curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains"

응답 예시:

[
  {
    "domain": "www.domain.example",
    "url": "http://www.domain.example",
    "verified": true,
    "verification_code": "1234567890abcdef",
    "enabled_until": "2020-04-12T14:32:00.000Z",
    "auto_ssl_enabled": false,
  },
  {
    "domain": "ssl.domain.example",
    "url": "https://ssl.domain.example",
    "verified": true,
    "verification_code": "1234567890abcdef",
    "enabled_until": "2020-04-12T14:32:00.000Z",
    "auto_ssl_enabled": false,
    "certificate": {
      "subject": "/O=Example, Inc./OU=Example Origin CA/CN=Example Origin Certificate",
      "expired": false,
      "certificate": "-----BEGIN CERTIFICATE-----\n … \n-----END CERTIFICATE-----",
      "certificate_text": "Certificate:\n … \n"
    }
  }
]

Pages 도메인 조회#

지정한 프로젝트에서 Pages 도메인을 조회합니다. 사용자는 Pages 도메인을 조회할 권한이 있어야 합니다.

GET /projects/:id/pages/domains/:domain

지원되는 속성:

속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
domain string yes 사용자가 지정한 커스텀 도메인

성공하면 200을 반환하며 응답 속성은 다음과 같습니다.

속성 유형 설명
domain string GitLab Pages 사이트의 커스텀 도메인 이름입니다.
url string 프로토콜을 포함한 Pages 사이트의 전체 URL 입니다.
verified boolean 도메인이 검증되었는지 여부를 나타냅니다.
verification_code string 도메인 소유권을 검증하는 데 사용하는 고유 레코드입니다.
enabled_until date 도메인이 활성 상태로 유지되는 기한입니다. 도메인이 재검증될 때마다 주기적으로 갱신됩니다.
auto_ssl_enabled boolean 이 도메인에 Let's Encrypt를 사용한 SSL 인증서 자동 생성이 활성화되어 있는지 나타냅니다.
certificate object SSL 인증서에 대한 정보입니다.
certificate.subject string SSL 인증서의 주체(subject)이며, 일반적으로 도메인 정보를 담고 있습니다.
certificate.expired date SSL 인증서가 만료되었는지(true) 또는 아직 유효한지(false)를 나타냅니다.
certificate.certificate string PEM 형식의 전체 SSL 인증서입니다.
certificate.certificate_text date 발급자, 유효 기간, 주체 등 인증서 정보를 사람이 읽을 수 있는 텍스트로 표현한 값입니다.

요청 예시:

curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example"

응답 예시:

{
  "domain": "ssl.domain.example",
  "url": "https://ssl.domain.example",
  "verified": true,
  "verification_code": "1234567890abcdef",
  "enabled_until": "2020-04-12T14:32:00.000Z",
  "auto_ssl_enabled": false,
  "certificate": {
    "subject": "/O=Example, Inc./OU=Example Origin CA/CN=Example Origin Certificate",
    "expired": false,
    "certificate": "-----BEGIN CERTIFICATE-----\n … \n-----END CERTIFICATE-----",
    "certificate_text": "Certificate:\n … \n"
  }
}

새 Pages 도메인 생성#

지정한 프로젝트에 Pages 도메인을 생성합니다. 사용자는 새 Pages 도메인을 생성할 권한이 있어야 합니다.

POST /projects/:id/pages/domains

지원되는 속성:

속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
domain string yes 사용자가 지정한 커스텀 도메인
auto_ssl_enabled boolean no 커스텀 도메인에 대해 Let's Encrypt가 발급하는 SSL 인증서 자동 생성을 활성화합니다.
certificate file/string no PEM 형식의 인증서이며, 중간 인증서를 가장 구체적인 것부터 덜 구체적인 순서로 이어서 넣습니다.
key file/string no PEM 형식의 인증서 키입니다.

성공하면 201을 반환하며 응답 속성은 다음과 같습니다.

속성 유형 설명
domain string GitLab Pages 사이트의 커스텀 도메인 이름입니다.
url string 프로토콜을 포함한 Pages 사이트의 전체 URL 입니다.
verified boolean 도메인이 검증되었는지 여부를 나타냅니다.
verification_code string 도메인 소유권을 검증하는 데 사용하는 고유 레코드입니다.
enabled_until date 도메인이 활성 상태로 유지되는 기한입니다. 도메인이 재검증될 때마다 주기적으로 갱신됩니다.
auto_ssl_enabled boolean 이 도메인에 Let's Encrypt를 사용한 SSL 인증서 자동 생성이 활성화되어 있는지 나타냅니다.
certificate object SSL 인증서에 대한 정보입니다.
certificate.subject string SSL 인증서의 주체(subject)이며, 일반적으로 도메인 정보를 담고 있습니다.
certificate.expired date SSL 인증서가 만료되었는지(true) 또는 아직 유효한지(false)를 나타냅니다.
certificate.certificate string PEM 형식의 전체 SSL 인증서입니다.
certificate.certificate_text date 발급자, 유효 기간, 주체 등 인증서 정보를 사람이 읽을 수 있는 텍스트로 표현한 값입니다.

요청 예시:

.pem 파일의 인증서로 새 Pages 도메인을 생성합니다.

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains" \
  --form "domain=ssl.domain.example" \
  --form "certificate=@/path/to/cert.pem" \
  --form "key=@/path/to/key.pem"

인증서가 담긴 변수를 사용해 새 Pages 도메인을 생성합니다.

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains" \
  --form "domain=ssl.domain.example" \
  --form "certificate=$CERT_PEM" \
  --form "key=$KEY_PEM"

자동 인증서로 새 Pages 도메인을 생성합니다.

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --form "domain=ssl.domain.example" \
  --form "auto_ssl_enabled=true" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains"

응답 예시:

{
  "domain": "ssl.domain.example",
  "url": "https://ssl.domain.example",
  "auto_ssl_enabled": true,
  "certificate": {
    "subject": "/O=Example, Inc./OU=Example Origin CA/CN=Example Origin Certificate",
    "expired": false,
    "certificate": "-----BEGIN CERTIFICATE-----\n … \n-----END CERTIFICATE-----",
    "certificate_text": "Certificate:\n … \n"
  }
}

Pages 도메인 업데이트#

프로젝트에서 지정한 Pages 도메인을 업데이트합니다. 사용자는 기존 Pages 도메인을 변경할 권한이 있어야 합니다.

PUT /projects/:id/pages/domains/:domain

지원되는 속성:

속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
domain string yes 사용자가 지정한 커스텀 도메인
auto_ssl_enabled boolean no 커스텀 도메인에 대해 Let's Encrypt가 발급하는 SSL 인증서 자동 생성을 활성화합니다.
certificate file/string no PEM 형식의 인증서이며, 중간 인증서를 가장 구체적인 것부터 덜 구체적인 순서로 이어서 넣습니다.
key file/string no PEM 형식의 인증서 키입니다.

성공하면 200을 반환하며 응답 속성은 다음과 같습니다.

속성 유형 설명
domain string GitLab Pages 사이트의 커스텀 도메인 이름입니다.
url string 프로토콜을 포함한 Pages 사이트의 전체 URL 입니다.
verified boolean 도메인이 검증되었는지 여부를 나타냅니다.
verification_code string 도메인 소유권을 검증하는 데 사용하는 고유 레코드입니다.
enabled_until date 도메인이 활성 상태로 유지되는 기한입니다. 도메인이 재검증될 때마다 주기적으로 갱신됩니다.
auto_ssl_enabled boolean 이 도메인에 Let's Encrypt를 사용한 SSL 인증서 자동 생성이 활성화되어 있는지 나타냅니다.
certificate object SSL 인증서에 대한 정보입니다.
certificate.subject string SSL 인증서의 주체(subject)이며, 일반적으로 도메인 정보를 담고 있습니다.
certificate.expired date SSL 인증서가 만료되었는지(true) 또는 아직 유효한지(false)를 나타냅니다.
certificate.certificate string PEM 형식의 전체 SSL 인증서입니다.
certificate.certificate_text date 발급자, 유효 기간, 주체 등 인증서 정보를 사람이 읽을 수 있는 텍스트로 표현한 값입니다.

인증서 추가#

.pem 파일에서 Pages 도메인의 인증서를 추가합니다.

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example" \
  --form "certificate=@/path/to/cert.pem" \
  --form "key=@/path/to/key.pem"

인증서가 담긴 변수를 사용해 Pages 도메인의 인증서를 추가합니다.

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example" \
  --form "certificate=$CERT_PEM" \
  --form "key=$KEY_PEM"

응답 예시:

{
  "domain": "ssl.domain.example",
  "url": "https://ssl.domain.example",
  "auto_ssl_enabled": false,
  "certificate": {
    "subject": "/O=Example, Inc./OU=Example Origin CA/CN=Example Origin Certificate",
    "expired": false,
    "certificate": "-----BEGIN CERTIFICATE-----\n … \n-----END CERTIFICATE-----",
    "certificate_text": "Certificate:\n … \n"
  }
}

Pages 커스텀 도메인에 Let's Encrypt 통합 활성화#

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example" \
  --form "auto_ssl_enabled=true"

응답 예시:

{
  "domain": "ssl.domain.example",
  "url": "https://ssl.domain.example",
  "auto_ssl_enabled": true
}

인증서 제거#

Pages 도메인에 연결된 SSL 인증서를 제거하려면 다음을 실행합니다.

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example" \
  --form "certificate=" \
  --form "key="

응답 예시:

{
  "domain": "ssl.domain.example",
  "url": "https://ssl.domain.example",
  "auto_ssl_enabled": false
}

Pages 도메인 검증#

히스토리
  • GitLab 17.7에서 도입되었습니다.

프로젝트에서 지정한 Pages 도메인을 검증합니다. 사용자는 Pages 도메인을 업데이트할 권한이 있어야 합니다.

PUT /projects/:id/pages/domains/:domain/verify

지원되는 속성:

속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
domain string yes 검증할 커스텀 도메인

성공하면 200을 반환하며 응답 속성은 다음과 같습니다.

속성 유형 설명
domain string GitLab Pages 사이트의 커스텀 도메인 이름입니다.
url string 프로토콜을 포함한 Pages 사이트의 전체 URL 입니다.
verified boolean 도메인이 검증되었는지 여부를 나타냅니다.
verification_code string 도메인 소유권을 검증하는 데 사용하는 고유 레코드입니다.
enabled_until date 도메인이 활성 상태로 유지되는 기한입니다. 도메인이 재검증될 때마다 주기적으로 갱신됩니다.
auto_ssl_enabled boolean 이 도메인에 Let's Encrypt를 사용한 SSL 인증서 자동 생성이 활성화되어 있는지 나타냅니다.
certificate object SSL 인증서에 대한 정보입니다.
certificate.subject string SSL 인증서의 주체(subject)이며, 일반적으로 도메인 정보를 담고 있습니다.
certificate.expired date SSL 인증서가 만료되었는지(true) 또는 아직 유효한지(false)를 나타냅니다.
certificate.certificate string PEM 형식의 전체 SSL 인증서입니다.
certificate.certificate_text date 발급자, 유효 기간, 주체 등 인증서 정보를 사람이 읽을 수 있는 텍스트로 표현한 값입니다.

요청 예시:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example/verify"

응답 예시:

{
  "domain": "ssl.domain.example",
  "url": "https://ssl.domain.example",
  "auto_ssl_enabled": false,
  "verified": true,
  "verification_code": "1234567890abcdef",
  "enabled_until": "2020-04-12T14:32:00.000Z"
}

Pages 도메인 삭제#

프로젝트에서 지정한 Pages 도메인을 삭제합니다.

DELETE /projects/:id/pages/domains/:domain

지원되는 속성:

속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
domain string yes 사용자가 지정한 커스텀 도메인

성공하면 본문이 비어 있는 204 No Content HTTP 응답이 반환됩니다.

요청 예시:

curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example"

Pages 도메인 API

GitLab v19.5
Tier: Free, Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed
원문 보기

요약

이 API를 사용해 GitLab Pages 도메인을 관리합니다. 이 엔드포인트를 사용하려면 GitLab Pages 기능이 활성화되어 있어야 합니다. 인스턴스의 모든 Pages 도메인을 나열합니다. 성공하면 200을 반환하며 응답 속성은 다음과 같습니다.

이 API를 사용해 GitLab Pages 도메인을 관리합니다.

이 엔드포인트를 사용하려면 GitLab Pages 기능이 활성화되어 있어야 합니다. 이 기능의 관리와 사용에 대한 자세한 내용을 확인할 수 있습니다.

모든 Pages 도메인 목록 조회#

인스턴스의 모든 Pages 도메인을 나열합니다.

사전 요구 사항:

  • 인스턴스에 대한 관리자 접근 권한이 있어야 합니다.
GET /pages/domains

지원되는 속성:

속성 유형 필수 설명
domain string no 필터링할 GitLab Pages 사이트의 도메인입니다.

성공하면 200을 반환하며 응답 속성은 다음과 같습니다.

속성 유형 설명
domain string GitLab Pages 사이트의 커스텀 도메인 이름입니다.
url string 프로토콜을 포함한 Pages 사이트의 전체 URL 입니다.
project_id integer 이 Pages 도메인과 연결된 GitLab 프로젝트의 ID 입니다.
verified boolean 도메인이 검증되었는지 여부를 나타냅니다.
verification_code string 도메인 소유권을 검증하는 데 사용하는 고유 레코드입니다.
enabled_until date 도메인이 활성 상태로 유지되는 기한입니다. 도메인이 재검증될 때마다 주기적으로 갱신됩니다.
auto_ssl_enabled boolean 이 도메인에 Let's Encrypt를 사용한 SSL 인증서 자동 생성이 활성화되어 있는지 나타냅니다.
certificate_expiration object SSL 인증서 만료에 대한 정보입니다.
certificate_expiration.expired boolean SSL 인증서가 만료되었는지 여부를 나타냅니다.
certificate_expiration.expiration date SSL 인증서의 만료 날짜와 시간입니다.

요청 예시:

curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/pages/domains"

응답 예시:

[
  {
    "domain": "ssl.domain.example",
    "url": "https://ssl.domain.example",
    "project_id": 1337,
    "verified": true,
    "verification_code": "1234567890abcdef",
    "enabled_until": "2020-04-12T14:32:00.000Z",
    "auto_ssl_enabled": false,
    "certificate": {
      "expired": false,
      "expiration": "2020-04-12T14:32:00.000Z"
    }
  }
]

프로젝트의 모든 Pages 도메인 목록 조회#

지정한 프로젝트의 모든 Pages 도메인을 나열합니다. 사용자는 Pages 도메인을 조회할 권한이 있어야 합니다.

GET /projects/:id/pages/domains

지원되는 속성:

속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로

성공하면 200을 반환하며 응답 속성은 다음과 같습니다.

속성 유형 설명
domain string GitLab Pages 사이트의 커스텀 도메인 이름입니다.
url string 프로토콜을 포함한 Pages 사이트의 전체 URL 입니다.
verified boolean 도메인이 검증되었는지 여부를 나타냅니다.
verification_code string 도메인 소유권을 검증하는 데 사용하는 고유 레코드입니다.
enabled_until date 도메인이 활성 상태로 유지되는 기한입니다. 도메인이 재검증될 때마다 주기적으로 갱신됩니다.
auto_ssl_enabled boolean 이 도메인에 Let's Encrypt를 사용한 SSL 인증서 자동 생성이 활성화되어 있는지 나타냅니다.
certificate object SSL 인증서에 대한 정보입니다.
certificate.subject string SSL 인증서의 주체(subject)이며, 일반적으로 도메인 정보를 담고 있습니다.
certificate.expired date SSL 인증서가 만료되었는지(true) 또는 아직 유효한지(false)를 나타냅니다.
certificate.certificate string PEM 형식의 전체 SSL 인증서입니다.
certificate.certificate_text date 발급자, 유효 기간, 주체 등 인증서 정보를 사람이 읽을 수 있는 텍스트로 표현한 값입니다.

요청 예시:

curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains"

응답 예시:

[
  {
    "domain": "www.domain.example",
    "url": "http://www.domain.example",
    "verified": true,
    "verification_code": "1234567890abcdef",
    "enabled_until": "2020-04-12T14:32:00.000Z",
    "auto_ssl_enabled": false,
  },
  {
    "domain": "ssl.domain.example",
    "url": "https://ssl.domain.example",
    "verified": true,
    "verification_code": "1234567890abcdef",
    "enabled_until": "2020-04-12T14:32:00.000Z",
    "auto_ssl_enabled": false,
    "certificate": {
      "subject": "/O=Example, Inc./OU=Example Origin CA/CN=Example Origin Certificate",
      "expired": false,
      "certificate": "-----BEGIN CERTIFICATE-----\n … \n-----END CERTIFICATE-----",
      "certificate_text": "Certificate:\n … \n"
    }
  }
]

Pages 도메인 조회#

지정한 프로젝트에서 Pages 도메인을 조회합니다. 사용자는 Pages 도메인을 조회할 권한이 있어야 합니다.

GET /projects/:id/pages/domains/:domain

지원되는 속성:

속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
domain string yes 사용자가 지정한 커스텀 도메인

성공하면 200을 반환하며 응답 속성은 다음과 같습니다.

속성 유형 설명
domain string GitLab Pages 사이트의 커스텀 도메인 이름입니다.
url string 프로토콜을 포함한 Pages 사이트의 전체 URL 입니다.
verified boolean 도메인이 검증되었는지 여부를 나타냅니다.
verification_code string 도메인 소유권을 검증하는 데 사용하는 고유 레코드입니다.
enabled_until date 도메인이 활성 상태로 유지되는 기한입니다. 도메인이 재검증될 때마다 주기적으로 갱신됩니다.
auto_ssl_enabled boolean 이 도메인에 Let's Encrypt를 사용한 SSL 인증서 자동 생성이 활성화되어 있는지 나타냅니다.
certificate object SSL 인증서에 대한 정보입니다.
certificate.subject string SSL 인증서의 주체(subject)이며, 일반적으로 도메인 정보를 담고 있습니다.
certificate.expired date SSL 인증서가 만료되었는지(true) 또는 아직 유효한지(false)를 나타냅니다.
certificate.certificate string PEM 형식의 전체 SSL 인증서입니다.
certificate.certificate_text date 발급자, 유효 기간, 주체 등 인증서 정보를 사람이 읽을 수 있는 텍스트로 표현한 값입니다.

요청 예시:

curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example"

응답 예시:

{
  "domain": "ssl.domain.example",
  "url": "https://ssl.domain.example",
  "verified": true,
  "verification_code": "1234567890abcdef",
  "enabled_until": "2020-04-12T14:32:00.000Z",
  "auto_ssl_enabled": false,
  "certificate": {
    "subject": "/O=Example, Inc./OU=Example Origin CA/CN=Example Origin Certificate",
    "expired": false,
    "certificate": "-----BEGIN CERTIFICATE-----\n … \n-----END CERTIFICATE-----",
    "certificate_text": "Certificate:\n … \n"
  }
}

새 Pages 도메인 생성#

지정한 프로젝트에 Pages 도메인을 생성합니다. 사용자는 새 Pages 도메인을 생성할 권한이 있어야 합니다.

POST /projects/:id/pages/domains

지원되는 속성:

속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
domain string yes 사용자가 지정한 커스텀 도메인
auto_ssl_enabled boolean no 커스텀 도메인에 대해 Let's Encrypt가 발급하는 SSL 인증서 자동 생성을 활성화합니다.
certificate file/string no PEM 형식의 인증서이며, 중간 인증서를 가장 구체적인 것부터 덜 구체적인 순서로 이어서 넣습니다.
key file/string no PEM 형식의 인증서 키입니다.

성공하면 201을 반환하며 응답 속성은 다음과 같습니다.

속성 유형 설명
domain string GitLab Pages 사이트의 커스텀 도메인 이름입니다.
url string 프로토콜을 포함한 Pages 사이트의 전체 URL 입니다.
verified boolean 도메인이 검증되었는지 여부를 나타냅니다.
verification_code string 도메인 소유권을 검증하는 데 사용하는 고유 레코드입니다.
enabled_until date 도메인이 활성 상태로 유지되는 기한입니다. 도메인이 재검증될 때마다 주기적으로 갱신됩니다.
auto_ssl_enabled boolean 이 도메인에 Let's Encrypt를 사용한 SSL 인증서 자동 생성이 활성화되어 있는지 나타냅니다.
certificate object SSL 인증서에 대한 정보입니다.
certificate.subject string SSL 인증서의 주체(subject)이며, 일반적으로 도메인 정보를 담고 있습니다.
certificate.expired date SSL 인증서가 만료되었는지(true) 또는 아직 유효한지(false)를 나타냅니다.
certificate.certificate string PEM 형식의 전체 SSL 인증서입니다.
certificate.certificate_text date 발급자, 유효 기간, 주체 등 인증서 정보를 사람이 읽을 수 있는 텍스트로 표현한 값입니다.

요청 예시:

.pem 파일의 인증서로 새 Pages 도메인을 생성합니다.

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains" \
  --form "domain=ssl.domain.example" \
  --form "certificate=@/path/to/cert.pem" \
  --form "key=@/path/to/key.pem"

인증서가 담긴 변수를 사용해 새 Pages 도메인을 생성합니다.

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains" \
  --form "domain=ssl.domain.example" \
  --form "certificate=$CERT_PEM" \
  --form "key=$KEY_PEM"

자동 인증서로 새 Pages 도메인을 생성합니다.

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --form "domain=ssl.domain.example" \
  --form "auto_ssl_enabled=true" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains"

응답 예시:

{
  "domain": "ssl.domain.example",
  "url": "https://ssl.domain.example",
  "auto_ssl_enabled": true,
  "certificate": {
    "subject": "/O=Example, Inc./OU=Example Origin CA/CN=Example Origin Certificate",
    "expired": false,
    "certificate": "-----BEGIN CERTIFICATE-----\n … \n-----END CERTIFICATE-----",
    "certificate_text": "Certificate:\n … \n"
  }
}

Pages 도메인 업데이트#

프로젝트에서 지정한 Pages 도메인을 업데이트합니다. 사용자는 기존 Pages 도메인을 변경할 권한이 있어야 합니다.

PUT /projects/:id/pages/domains/:domain

지원되는 속성:

속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
domain string yes 사용자가 지정한 커스텀 도메인
auto_ssl_enabled boolean no 커스텀 도메인에 대해 Let's Encrypt가 발급하는 SSL 인증서 자동 생성을 활성화합니다.
certificate file/string no PEM 형식의 인증서이며, 중간 인증서를 가장 구체적인 것부터 덜 구체적인 순서로 이어서 넣습니다.
key file/string no PEM 형식의 인증서 키입니다.

성공하면 200을 반환하며 응답 속성은 다음과 같습니다.

속성 유형 설명
domain string GitLab Pages 사이트의 커스텀 도메인 이름입니다.
url string 프로토콜을 포함한 Pages 사이트의 전체 URL 입니다.
verified boolean 도메인이 검증되었는지 여부를 나타냅니다.
verification_code string 도메인 소유권을 검증하는 데 사용하는 고유 레코드입니다.
enabled_until date 도메인이 활성 상태로 유지되는 기한입니다. 도메인이 재검증될 때마다 주기적으로 갱신됩니다.
auto_ssl_enabled boolean 이 도메인에 Let's Encrypt를 사용한 SSL 인증서 자동 생성이 활성화되어 있는지 나타냅니다.
certificate object SSL 인증서에 대한 정보입니다.
certificate.subject string SSL 인증서의 주체(subject)이며, 일반적으로 도메인 정보를 담고 있습니다.
certificate.expired date SSL 인증서가 만료되었는지(true) 또는 아직 유효한지(false)를 나타냅니다.
certificate.certificate string PEM 형식의 전체 SSL 인증서입니다.
certificate.certificate_text date 발급자, 유효 기간, 주체 등 인증서 정보를 사람이 읽을 수 있는 텍스트로 표현한 값입니다.

인증서 추가#

.pem 파일에서 Pages 도메인의 인증서를 추가합니다.

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example" \
  --form "certificate=@/path/to/cert.pem" \
  --form "key=@/path/to/key.pem"

인증서가 담긴 변수를 사용해 Pages 도메인의 인증서를 추가합니다.

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example" \
  --form "certificate=$CERT_PEM" \
  --form "key=$KEY_PEM"

응답 예시:

{
  "domain": "ssl.domain.example",
  "url": "https://ssl.domain.example",
  "auto_ssl_enabled": false,
  "certificate": {
    "subject": "/O=Example, Inc./OU=Example Origin CA/CN=Example Origin Certificate",
    "expired": false,
    "certificate": "-----BEGIN CERTIFICATE-----\n … \n-----END CERTIFICATE-----",
    "certificate_text": "Certificate:\n … \n"
  }
}

Pages 커스텀 도메인에 Let's Encrypt 통합 활성화#

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example" \
  --form "auto_ssl_enabled=true"

응답 예시:

{
  "domain": "ssl.domain.example",
  "url": "https://ssl.domain.example",
  "auto_ssl_enabled": true
}

인증서 제거#

Pages 도메인에 연결된 SSL 인증서를 제거하려면 다음을 실행합니다.

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example" \
  --form "certificate=" \
  --form "key="

응답 예시:

{
  "domain": "ssl.domain.example",
  "url": "https://ssl.domain.example",
  "auto_ssl_enabled": false
}

Pages 도메인 검증#

히스토리
  • GitLab 17.7에서 도입되었습니다.

프로젝트에서 지정한 Pages 도메인을 검증합니다. 사용자는 Pages 도메인을 업데이트할 권한이 있어야 합니다.

PUT /projects/:id/pages/domains/:domain/verify

지원되는 속성:

속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
domain string yes 검증할 커스텀 도메인

성공하면 200을 반환하며 응답 속성은 다음과 같습니다.

속성 유형 설명
domain string GitLab Pages 사이트의 커스텀 도메인 이름입니다.
url string 프로토콜을 포함한 Pages 사이트의 전체 URL 입니다.
verified boolean 도메인이 검증되었는지 여부를 나타냅니다.
verification_code string 도메인 소유권을 검증하는 데 사용하는 고유 레코드입니다.
enabled_until date 도메인이 활성 상태로 유지되는 기한입니다. 도메인이 재검증될 때마다 주기적으로 갱신됩니다.
auto_ssl_enabled boolean 이 도메인에 Let's Encrypt를 사용한 SSL 인증서 자동 생성이 활성화되어 있는지 나타냅니다.
certificate object SSL 인증서에 대한 정보입니다.
certificate.subject string SSL 인증서의 주체(subject)이며, 일반적으로 도메인 정보를 담고 있습니다.
certificate.expired date SSL 인증서가 만료되었는지(true) 또는 아직 유효한지(false)를 나타냅니다.
certificate.certificate string PEM 형식의 전체 SSL 인증서입니다.
certificate.certificate_text date 발급자, 유효 기간, 주체 등 인증서 정보를 사람이 읽을 수 있는 텍스트로 표현한 값입니다.

요청 예시:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example/verify"

응답 예시:

{
  "domain": "ssl.domain.example",
  "url": "https://ssl.domain.example",
  "auto_ssl_enabled": false,
  "verified": true,
  "verification_code": "1234567890abcdef",
  "enabled_until": "2020-04-12T14:32:00.000Z"
}

Pages 도메인 삭제#

프로젝트에서 지정한 Pages 도메인을 삭제합니다.

DELETE /projects/:id/pages/domains/:domain

지원되는 속성:

속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
domain string yes 사용자가 지정한 커스텀 도메인

성공하면 본문이 비어 있는 204 No Content HTTP 응답이 반환됩니다.

요청 예시:

curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example"