Media CDN 서비스(또는 서비스)를 생성한 후에는 SSL(TLS) 인증서를 발급 및 연결하여 브라우저 및 모바일 애플리케이션에서 보안 연결을 지원할 수 있습니다.
관리형 인증서 발급
관리형 인증서를 만들고 Media CDN 서비스에 연결하려면 다음을 수행해야 합니다.
- 챌린지 토큰을 만들고 DNS 레코드를 추가하여 인증서를 발급하려는 도메인의 소유권("승인")을 표시합니다.
- 그러한 승인에 기반한 하나 이상의 도메인 이름을 사용하여
EDGE_CACHE유형의 인증서를 만듭니다. - 이 인증서를 하나 이상의 에지 캐시 서비스에 연결합니다.
에지 캐시 서비스에 대해 인증서를 승인, 생성, 연결하려면 다음 Identity and Access Management 권한이 있어야 합니다.
certificatemanager.certs.createcertificatemanager.certs.getcertificatemanager.certs.listcertificatemanager.certs.usecertificatemanager.dnsauthorizations.createcertificatemanager.dnsauthorizations.getcertificatemanager.dnsauthorizations.listcertificatemanager.dnsauthorizations.use
Media CDN 서비스에 기존 인증서를 연결하려는 사용자에게는 certificatemanager.certs.get, certificatemanager.certs.list, certificatemanager.certs.use IAM 권한이 필요합니다.
시작하기 전에
- 공개 DNS 레코드를 업데이트할 수 있는 등록된 도메인 이름이 있어야 합니다.
- SSL 인증서 개요를 읽습니다.
DNS 승인 만들기
인증서를 발급할 수 있으려면 먼저 도메인 소유권을 표시하기 위한 DNS 승인을 만들어야 합니다. DNS 승인은 DNS-01 ACME 챌린지를 사용하며, 에지 캐시 서비스로 사용자 대상 트래픽을 연결하기 전에 인증서를 발급할 수 있게 해줍니다.
다음과 같이 domain 값을 인증서를 만들려는 도메인 이름으로 설정합니다.
gcloud
gcloud certificate-manager dns-authorizations 명령어를 사용합니다.
gcloud certificate-manager dns-authorizations create DOMAIN_NAME_AUTH \
--domain="DOMAIN_NAME"
gcloud certificate-manager dns-authorizations describe DOMAIN_NAME_AUTH
gcloud CLI는 추가하려는 DNS 레코드의 세부정보가 포함된 응답을 반환합니다.
createTime: '2022-01-14T13:35:00.258409106Z' dnsResourceRecord: data: 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog. name: _acme-challenge.example.com. type: CNAME domain: example.com name: projects/myProject/locations/global/dnsAuthorizations/myAuthorization updateTime: '2022-01-14T13:35:01.571086137Z'
Terraform
도메인에 Cloud DNS를 사용하는 경우 호스트 도메인에 대한 새 레코드 추가 단계를 참조하세요. 다른 DNS 제공업체를 사용하는 경우 CNAME 레코드 추가 관련 문서를 참조하세요.
- 인증서를 발급해야 하는 각 도메인에 대해 이 단계를 반복할 수 있습니다.
- 인증서에 여러 도메인을 포함하거나 필요에 따라 도메인별로 인증서를 발급하도록 선택할 수 있습니다. 도메인의 승인을 얻었으면 이를 사용해서 인증서를 발급할 수 있습니다.
- 서비스에 사용되는 모든 도메인 이름을 포함하여 생성하는 총 인증서 수를 줄이는 것이 좋습니다. 이렇게 하면 클라이언트가 TLS 재개를 더 자주 사용할 수 있기 때문에 여러 도메인을 사용할 때 클라이언트 성능이 향상됩니다.
- 각 에지 캐시 서비스는 최대 5개의 인증서를 참조할 수 있습니다. 인증서 발급 수를 줄여서 이 한도 내로 유지할 수 있습니다.
이후 날짜에 DNS 레코드 값을 검색할 필요가 있으면 DNS 승인을 만들 때 제공한 authorizationName을 요청합니다.
인증서 만들기
인증서를 만들려는 도메인의 소유권을 표시하는 DNS 레코드를 추가한 후 인증서 만들기 요청을 실행할 수 있습니다.
dnsAuthorizations 목록은 이 프로세스에서 이전에 만든 기존 승인의 이름과 일치해야 합니다. 동일한 인증서에 여러 도메인을 추가하려면 요청을 수행할 때 domains[] 및 일치하는 dnsAuthorizations[] 목록을 제공합니다.
test.example.com에 대한 승인을 사용하여 test-example-com이라는 인증서를 만들려면 다음 안내를 따르세요.
gcloud
gcloud certificate-manager certificates 명령어를 사용합니다.
gcloud certificate-manager certificates create CERTIFICATE_NAME \
--domains="DOMAIN_NAME" \
--dns-authorizations="DOMAIN_NAME_AUTH" \
--scope=EDGE_CACHE
그러면 각 DNS 승인이 AUTHORIZING 상태인 인증서가 생성되고 PROVISIONING 상태의 인증서가 생성됩니다.
Create request issued for: [DOMAIN_NAME] Waiting for operation [projects/my-project/locations/global/operations/operatio n-1613425627385-5bb66ed644e91-3e2a2f1f-71979cf8] to complete...done. Created certificate [CERTIFICATE_NAME].
Terraform
인증서 생성이 완료되려면 다음 조건에 따라 몇 분에서 최대 1시간 까지 걸릴 수 있습니다.
- DNS 제공업체가 구성 변경을 전파하는 속도
- 인증서 검증 및 생성을 시도하는 도메인 수
state 필드에는 인증서의 현재 상태가 표시됩니다.
- PROVISIONING - 인증서가 아직 프로비저닝되는 중입니다. 인증서 만들기 요청이 최근에 수행되었기 때문일 수 있습니다.
- FAILED - 도메인 검증 또는 인증서 발급 시도가 여러 번 수행된 후에 반환됩니다. 자세한 내용은
provisioning_issue,authorization_attempt_info,failure_reason필드를 참조하세요. - ACTIVE - 도메인이 성공적으로 검증되었고 인증서가 프로비저닝되었습니다.
인증서 상태를 확인합니다.
gcloud
gcloud certificate-manager certificates 명령어를 사용합니다.
gcloud certificate-manager certificates describe CERTIFICATE_NAME
이 예시에서 DNS 승인은 AUTHORIZED이고 인증서 상태는 ACTIVE입니다.
createTime: '2021-02-07T20:03:39.867762684Z' expireTime: '2021-03-09T19:20:41Z' managed: authorizationAttemptInfo: - domain: DOMAIN_NAME state: AUTHORIZED dnsAuthorizations: - projects/111111111111/locations/global/dnsAuthorizations/test-example-com domains: - DOMAIN_NAME state: ACTIVE name: projects/my-project/locations/global/certificates/test-example-com scope: EDGE_CACHE subjectAlternativeNames: - DOMAIN_NAME updateTime: '2021-02-07T20:03:40.297242738Z'
인증서가 ACTIVE가 되면 이를 에지 캐시 서비스에 연결할 수 있습니다.
서비스에 인증서 연결
관리형 인증서를 만든 후에는 하나 이상의 에지 캐시 서비스에 연결할 수 있습니다.
서비스에서 edgeSslCertificates 목록을 업데이트하여 기존 및 새로운 서비스에 인증서를 연결할 수 있습니다.
에지 캐시 서비스에 인증서를 연결하려면 다음 IAM 권한이 있어야 합니다.
certificatemanager.certs.getcertificatemanager.certs.listcertificatemanager.certs.usenetworkservices.edgeCacheServices.getnetworkservices.edgeCacheServices.listnetworkservices.edgeCacheServices.update
서비스에 인증서를 연결하려면 다음 단계를 완료합니다.
gcloud
gcloud edge-cache services export 명령어를 실행하여 서비스의 YAML 파일을 내보냅니다.
gcloud edge-cache services export MY_SERVICE \
--destination=my-service.yaml
내보낸 YAML 파일을 수정하여 인증서를 추가합니다.
name: MY_SERVICE edgeSslCertificates: - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME
gcloud edge-cache services import 명령어를 실행합니다.
gcloud edge-cache services import MY_SERVICE \
--source=my-service.yaml
출력:
Request issued for: [MY_SERVICE] Updated service [MY_SERVICE]
이 명령어는 이제 연결된 edgeSslCertificates 목록을 포함하여 서비스에 대한 설명을 반환합니다.
name: MY_SERVICE edgeSslCertificates: - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME
구성을 업데이트하면 인증서가 몇 분 내에 모든 에지 위치에 전파됩니다. DNS를 변경하기 전에 인증서가 에지 캐시 서비스와 연결되어 있는지 테스트하려면 서비스와 연결된 IPv4 또는 IPv6 주소에 대해 요청을 실행하면 됩니다.
인증서 교체 및 삭제
인증서 목록을 업데이트하여 인증서를 추가하고 삭제할 수 있습니다.
gcloud CLI의 --edge-ssl-certificate 플래그를 사용할 때는 인증서가 기존 인증서 목록에 추가만 되고 대체되지는 않습니다. 이렇게 하면 유효한 활성 인증서를 실수로 삭제하는 것을 방지할 수 있습니다.
다음 예시에서 서비스로부터 test-example-com 인증서를 삭제하려면 가져오기 및 내보내기 명령어를 사용하여 YAML에 서비스를 내보낼 수 있습니다.
name: my-service edgeSslCertificates: - projects/PROJECT_ID/locations/global/certificates/test-example-com - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME
다음 명령어는 서비스 내보내기, 인증서 참조 삭제, 업데이트된 서비스 가져오기 방법을 보여줍니다.
gcloud
gcloud edge-cache services 명령어를 사용합니다.
gcloud edge-cache services export MY_SERVICE --destination=my-service.yaml
Exported [projects/my-project/locations/global/edgeCacheServices/MY_SERVICE] to 'my-service.yaml'.
원하는 텍스트 편집기를 사용하여 서비스를 더 이상 사용하지 않으려는 인증서를 삭제합니다.
name: MY_SERVICE edgeSslCertificates: - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME
수정된 파일을 저장한 후 업데이트된 서비스를 가져옵니다.
gcloud
gcloud edge-cache services 명령어를 사용합니다.
gcloud edge-cache services import MY_SERVICE --source=my-service.yaml
Request issued for: [MY_SERVICE] Updated service [MY_SERVICE].
인증서를 연결할 수 있는 서비스 수에는 한도가 없으며 각 에지 캐시 서비스는 최대 5개까지 인증서를 참조할 수 있습니다.
자체 관리형 인증서
필요한 특정 사용 사례가 있으면 Media CDN에 자체 인증서를 업로드할 수 있습니다.
인증서 및 연결된 키를 인증서 관리자에 업로드하려면 다음 안내를 따르세요.
gcloud
gcloud certificate-manager certificates 명령어를 사용합니다. Media CDN과 연결된 인증서에 대해 --scope=EDGE_CACHE를 지정해야 합니다.
gcloud certificate-manager certificates create stream-example-com \
--certificate-file=CERT.pem \
--private-key-file=PRIVATE_KEY.pem \
--scope=EDGE_CACHE
Create request issued for: [stream-example-com] Created certificate [stream-example-com].
인증서를 업로드한 후 관리형 인증서와 마찬가지로 EdgeCacheService에 연결할 수 있습니다.
인증서 발급 문제 해결
일반적인 인증서 승인 및 발급 오류를 해결하는 방법은 문제 해결 가이드를 참조하세요.
다음 단계
- 기본적인 통신 암호화를 위해 모든 HTTP 요청을 HTTPS로 리디렉션
- Logging으로 요청 로그 보기
- 콘텐츠 보호를 위한 서명된 요청 구성
- 캐시 적중률 향상을 위한 캐시 키 및 TTL 최적화
- 고급 경로 매칭 구성 및 원본 추가