페이지 도메인 API
GitLab Pages에서 사용자 정의 도메인 및 TLS 인증서에 연결하기 위한 엔드포인트입니다.
GitLab Pages 기능이 활성화되어야 이러한 엔드포인트를 사용할 수 있습니다. 관리하는 방법과 사용하는 방법에 대해 자세히 알아보세요.
모든 페이지 도메인 목록
사전 요구 사항:
- 인스턴스에 대한 관리자 액세스 권한이 있어야 합니다.
모든 페이지 도메인의 목록을 가져옵니다.
GET /pages/domains
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/pages/domains"
[
{
"domain": "ssl.domain.example",
"url": "https://ssl.domain.example",
"project_id": 1337,
"auto_ssl_enabled": false,
"certificate": {
"expired": false,
"expiration": "2020-04-12T14:32:00.000Z"
}
}
]
페이지 도메인 목록
프로젝트 페이지 도메인 목록을 가져옵니다. 사용자는 페이지 도메인을 볼 수 있는 권한이 있어야 합니다.
GET /projects/:id/pages/domains
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
integer/string | 예 | 프로젝트의 ID 또는 URL 인코딩 경로 |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/pages/domains"
[
{
"domain": "www.domain.example",
"url": "http://www.domain.example"
},
{
"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"
}
}
]
단일 페이지 도메인
단일 프로젝트 페이지 도메인을 가져옵니다. 사용자는 페이지 도메인을 볼 수 있는 권한이 있어야 합니다.
GET /projects/:id/pages/domains/:domain
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
integer/string | 예 | 프로젝트의 ID 또는 URL 인코딩 경로 |
domain |
string | 예 | 사용자가 지정한 사용자 정의 도메인 |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/pages/domains/www.domain.example"
{
"domain": "www.domain.example",
"url": "http://www.domain.example"
}
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example"
{
"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 도메인 생성
새 Pages 도메인을 생성합니다. 사용자는 새 Pages 도메인을 생성할 수 있는 권한이 있어야 합니다.
POST /projects/:id/pages/domains
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
integer/string | 예 | 프로젝트의 ID 또는 URL 인코딩 경로 |
domain |
string | 예 | 사용자가 지정한 사용자 정의 도메인 |
auto_ssl_enabled |
boolean | 아니오 | 사용자 정의 도메인에 대해 Let’s Encrypt에서 발행한 SSL 인증서의 자동 생성을 가능하게 합니다. |
certificate |
file/string | 아니오 | 가장 구체적인 순서에서 가장 덜 구체적인 순서로 중간 인증서를 포함한 PEM 형식의 인증서. |
key |
file/string | 아니오 | PEM 형식의 인증서 키입니다. |
.pem 파일에서 인증서를 사용하여 새 Pages 도메인을 생성합니다:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
--form "domain=ssl.domain.example" --form "certificate=@/path/to/cert.pem" \
--form "key=@/path/to/key.pem" "https://gitlab.example.com/api/v4/projects/5/pages/domains"
변수를 사용하여 인증서를 포함한 새 Pages 도메인을 생성합니다:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
--form "domain=ssl.domain.example" --form "certificate=$CERT_PEM" \
--form "key=$KEY_PEM" "https://gitlab.example.com/api/v4/projects/5/pages/domains"
자동 인증서를 사용하여 새 Pages 도메인을 생성합니다:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --form "domain=ssl.domain.example" \
--form "auto_ssl_enabled=true" "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/string | 예 | 프로젝트의 ID 또는 URL 인코딩 경로 |
domain |
string | 예 | 사용자가 지정한 사용자 정의 도메인 |
auto_ssl_enabled |
boolean | 아니오 | 사용자 정의 도메인에 대해 Let’s Encrypt에서 발행한 SSL 인증서의 자동 생성을 가능하게 합니다. |
certificate |
file/string | 아니오 | 가장 구체적인 순서에서 가장 덜 구체적인 순서로 중간 인증서를 포함한 PEM 형식의 인증서. |
key |
file/string | 아니오 | PEM 형식의 인증서 키입니다. |
인증서 추가하기
.pem
파일에서 Pages 도메인에 인증서를 추가합니다:
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" --form "certificate=@/path/to/cert.pem" \
--form "key=@/path/to/key.pem" "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example"
변수를 사용하여 인증서가 포함된 Pages 도메인에 인증서를 추가합니다:
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" --form "certificate=$CERT_PEM" \
--form "key=$KEY_PEM" "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example"
{
"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>" \
--form "auto_ssl_enabled=true" "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example"
{
"domain": "ssl.domain.example",
"url": "https://ssl.domain.example",
"auto_ssl_enabled": true
}
인증서 제거하기
Pages 도메인에 연결된 SSL 인증서를 제거하려면 다음을 실행합니다:
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" --form "certificate=" \
--form "key=" "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example"
{
"domain": "ssl.domain.example",
"url": "https://ssl.domain.example",
"auto_ssl_enabled": false
}
Pages 도메인 삭제하기
기존 프로젝트 Pages 도메인을 삭제합니다.
DELETE /projects/:id/pages/domains/:domain
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
integer/string | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로 |
domain |
string | 예 | 사용자가 지정한 맞춤 도메인 |
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example"