이 튜토리얼에서는 인증서 관리자를 사용하여 부하 분산기 승인으로 전역 Google 관리형 인증서를 배포하는 방법을 보여줍니다.
부하 분산기 승인은 Google 관리형 인증서를 획득하는 가장 효율적인 방법입니다. DNS 구성을 깔끔하게 유지하고 구성이 완료된 후 TLS 인증서를 프로비저닝합니다.
다음 부하 분산기에서는 부하 분산기 승인을 통해 Google 관리형 인증서를 지원합니다.
- 전역 외부 애플리케이션 부하 분산기
- 기본 애플리케이션 부하 분산기
- 전역 외부 프록시 네트워크 부하 분산기
부하 분산기 승인을 사용하여 Google 관리형 인증서 만들기
부하 분산기 승인을 사용하여 Google 관리형 인증서를 만들려면 다음을 수행하세요.
콘솔
Google Cloud 콘솔에서 인증서 관리자 페이지로 이동합니다.
인증서 탭에서 인증서 추가를 클릭합니다.
인증서 이름 필드에 인증서의 고유한 이름을 입력합니다.
선택사항: 설명 필드에 인증서에 대한 설명을 입력합니다. 설명을 통해 인증서를 식별할 수 있습니다.
위치에서 전역을 선택합니다.
범위에서 기본값을 선택합니다.
인증서 유형에서 Google 관리형 인증서 만들기를 선택합니다.
인증 기관 유형에서 공개를 선택합니다.
도메인 이름 필드에 인증서의 도메인 이름 목록을 쉼표로 구분하여 지정합니다. 각 도메인 이름은
myorg.example.com과 같은 정규화된 도메인 이름이어야 합니다.승인 유형에서 부하 분산기 승인을 선택합니다.
라벨 필드에서 인증서와 연결할 라벨을 지정합니다. 라벨을 추가하려면 라벨 추가를 클릭하고 라벨의 키와 값을 지정합니다.
만들기를 클릭합니다.
새 인증서가 인증서 목록에 표시됩니다.
gcloud
부하 분산기 승인을 사용하여 전역 Google 관리형 인증서를 만들려면 certificate-manager certificates create 명령어를 사용합니다.
gcloud certificate-manager certificates create CERTIFICATE_NAME \
--domains="DOMAIN_NAMES"
다음을 바꿉니다.
CERTIFICATE_NAME: 인증서의 이름입니다.DOMAIN_NAMES: 쉼표로 구분된 대상 도메인 목록입니다. 각 도메인 이름은myorg.example.com과 같은 정규화된 도메인 이름이어야 합니다.
Terraform
google_certificate_manager_certificate 리소스를 사용합니다.
Terraform 구성을 적용하거나 삭제하는 방법은 기본 Terraform 명령어를 참고하세요.
API
다음과 같이 certificates.create 메서드에 POST 요청을 전송하여 인증서를 만듭니다.
POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME"
{
"managed": {
"domains": ["DOMAIN_NAME"],
}
}
다음을 바꿉니다.
PROJECT_ID: Google Cloud 프로젝트의 ID입니다.CERTIFICATE_NAME: 인증서의 이름입니다.DOMAIN_NAMES: 쉼표로 구분된 대상 도메인 목록입니다. 각 도메인 이름은myorg.example.com과 같은 정규화된 도메인 이름이어야 합니다.
부하 분산기에 인증서 배포
전역 Google 관리형 인증서를 배포하려면 인증서 맵을 사용하세요.
인증서 맵 만들기
인증서와 연결된 인증서 맵 항목을 참조하는 인증서 맵을 만듭니다.
gcloud
인증서 맵을 만들려면 gcloud certificate-manager maps create 명령어를 사용합니다.
gcloud certificate-manager maps create CERTIFICATE_MAP_NAME
CERTIFICATE_MAP_NAME을 대상 인증서 맵의 이름으로 바꿉니다.
Terraform
인증서 맵을 만들려면 google_certificate_manager_certificate_map 리소스를 사용하면 됩니다.
인증서 맵 항목 만들기
인증서 맵 항목을 만들고 인증서 및 인증서 맵과 연결합니다.
gcloud
인증서 맵 항목을 만들려면 gcloud certificate-manager maps entries create 명령어를 사용합니다.
gcloud certificate-manager maps entries create CERTIFICATE_MAP_ENTRY_NAME \
--map="CERTIFICATE_MAP_NAME" \
--certificates="CERTIFICATE_NAME" \
--hostname="HOSTNAME"
다음을 바꿉니다.
CERTIFICATE_MAP_ENTRY_NAME: 인증서 맵 항목의 이름입니다.CERTIFICATE_MAP_NAME: 인증서 맵 항목이 연결된 인증서 맵의 이름입니다.CERTIFICATE_NAME: 인증서 맵 항목에 연결하려는 인증서의 이름HOSTNAME: 인증서 맵 항목과 연결하려는 호스트 이름와일드 카드 도메인과 루트 도메인을 모두 포함하는 인증서를 만들려면 루트와 와일드 카드가 있는 호스트 이름(예:
example.com및*.example.com)을 지정합니다. 또한 인증서 맵 항목을 두 개 지정해야 합니다. 하나는example.com용이고 다른 하나는*.example.com용입니다.
Terraform
루트 도메인으로 인증서 맵 항목을 만들려면 google_certificate_manager_certificate_map_entry 리소스를 사용합니다.
와일드 카드 도메인으로 인증서 맵 항목을 만들려면 google_certificate_manager_certificate_map_entry 리소스를 사용합니다.
인증서 맵 항목이 활성 상태인지 확인
해당 인증서 맵을 대상 프록시에 연결하기 전에 인증서 맵 항목이 활성 상태인지 확인합니다.
인증서 맵 항목을 확인하려면 gcloud certificate-manager maps entries describe 명령어를 사용합니다.
gcloud certificate-manager maps entries describe CERTIFICATE_MAP_ENTRY_NAME \
--map="CERTIFICATE_MAP_NAME"
다음을 바꿉니다.
CERTIFICATE_MAP_ENTRY_NAME: 인증서 맵 항목의 이름입니다.CERTIFICATE_NAME: 인증서 맵 항목에 연결하려는 인증서의 이름
출력은 다음과 비슷합니다.
certificates: createTime: '2021-09-06T10:01:56.229472109Z' hostname: example.com name: projects/my-project/locations/global/certificateMaps/myCertMap/certificateMapEntries/myCertMapEntry state: ACTIVE updateTime: '2021-09-06T10:01:58.277031787Z'
대상 프록시에 인증서 맵 연결
인증서 맵을 새 대상 프록시 또는 기존 대상 프록시에 연결할 수 있습니다.
gcloud
인증서 맵을 새 대상 프록시에 연결하려면 gcloud compute target-https-proxies create 명령어를 사용합니다.
gcloud compute target-https-proxies create PROXY_NAME \
--certificate-map="CERTIFICATE_MAP_NAME" \
--url-map="URL_MAP" \
--global
다음을 바꿉니다.
PROXY_NAME: 대상 프록시 이름CERTIFICATE_MAP_NAME: 인증서 맵 항목과 연결된 인증서를 참조하는 인증서 맵의 이름URL_MAP: URL 맵의 이름
인증서 맵을 기존 대상 HTTPS 프록시에 연결하려면 gcloud compute target-https-proxies update 명령어를 사용합니다. 기존 대상 프록시의 이름을 모르는 경우 대상 프록시 페이지로 이동하여 대상 프록시의 이름을 확인합니다.
gcloud compute target-https-proxies update PROXY_NAME \
--certificate-map="CERTIFICATE_MAP_NAME" \
--global
대상 프록시를 만들거나 업데이트한 후 다음 명령어를 실행하여 확인합니다.
gcloud compute target-https-proxies list
Terraform
인증서 맵을 대상 프록시에 연결하려면 google_compute_target_https_proxy 리소스를 사용하면 됩니다.
대상 프록시를 구성할 때 TLS(SSL) 인증서를 직접 연결하고 인증서 맵을 통해 연결하면 프록시는 인증서 맵에서 참조하는 인증서를 사용하고 직접 연결된 TLS(SSL) 인증서는 무시합니다.
인증서 상태 확인
인증서를 부하 분산기에 배포하기 전에 활성 상태인지 확인하세요. 인증서 상태가 ACTIVE로 변경되는 데 몇 분 정도 걸릴 수 있습니다.
콘솔
Google Cloud 콘솔에서 인증서 관리자 페이지로 이동합니다.
인증서 탭에서 인증서의 상태 열을 확인합니다.
gcloud
인증서 상태를 확인하려면 다음 명령어를 실행하세요.
gcloud certificate-manager certificates describe CERTIFICATE_NAME
CERTIFICATE_NAME을 대상 Google 관리형 인증서의 이름으로 바꿉니다.
출력은 다음과 비슷합니다.
createTime: '2021-10-20T12:19:53.370778666Z'
expireTime: '2022-05-07T05:03:49Z'
managed:
authorizationAttemptInfo:
- domain: myorg.example.com
state: AUTHORIZED
domains:
- myorg.example.com
state: ACTIVE
name: projects/myProject/locations/global/certificates/myCert
pemCertificate: |
-----BEGIN CERTIFICATE-----
[...]
-----END CERTIFICATE-----
sanDnsnames:
- myorg.example.com
updateTime: '2021-10-20T12:19:55.083385630Z'
몇 시간 후에도 인증서 상태가 ACTIVE가 아니면 다음을 확인합니다.
- 인증서를 참조하는 인증서 맵이 올바른 대상 프록시에 연결되어 있습니다.
- 대상 프록시가 올바른 부하 분산기에 연결되어 있습니다.
- 대상 도메인의 DNS 구성이 대상 부하 분산기의 IP 주소를 가리킵니다.
추가 문제 해결 단계는 인증서 관리자 문제 해결을 참고하세요.
삭제
이 튜토리얼에서 사용한 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 리소스를 삭제하세요.
부하 분산기와 해당 리소스를 삭제합니다.
자세한 내용은 부하 분산 설정 삭제를 참고하세요.
프록시에서 인증서 맵을 삭제하거나 분리합니다.
인증서 맵을 삭제하려면 다음 명령어를 실행합니다.
gcloud compute target-https-proxies delete PROXY_NAME
대상 HTTPS 프록시를 유지하려면 프록시에서 인증서 맵을 분리합니다.
- TLS (SSL) 인증서가 프록시에 직접 연결되어 있으면 인증서 맵을 분리하면 프록시가 직접 연결된 TLS (SSL) 인증서를 사용하여 프록시를 다시 시작합니다.
- 프록시에 직접 연결된 TLS (SSL) 인증서가 없으면 인증서 맵을 프록시에서 분리할 수 없습니다. 인증서 맵을 분리하려면 먼저 TLS(SSL) 인증서 최소 하나 이상을 프록시에 직접 연결해야 합니다.
인증서 맵을 분리하려면 다음 명령어를 실행합니다.
gcloud compute target-https-proxies update PROXY_NAME \ --clear-certificate-mapPROXY_NAME을 대상 프록시의 이름으로 바꿉니다.인증서 맵에서 인증서 맵 항목을 삭제합니다.
gcloud certificate-manager maps entries delete CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME"다음을 바꿉니다.
CERTIFICATE_MAP_ENTRY_NAME: 인증서 맵 항목의 이름입니다.CERTIFICATE_MAP_NAME: 인증서 맵의 이름입니다.
인증서 맵을 삭제합니다.
gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
CERTIFICATE_MAP_NAME을 인증서 맵의 이름으로 바꿉니다.Google 관리형 인증서를 삭제합니다.
콘솔
Google Cloud 콘솔에서 인증서 관리자 페이지로 이동합니다.
인증서 탭에서 인증서의 체크박스를 선택합니다.
삭제를 클릭합니다.
표시되는 대화상자에서 삭제를 클릭하여 확인합니다.
gcloud
gcloud certificate-manager certificates delete CERTIFICATE_NAME
CERTIFICATE_NAME을 대상 인증서의 이름으로 바꿉니다.