대체 도메인 이름과 HTTPS 구성 - Amazon CloudFront

대체 도메인 이름과 HTTPS 구성

파일의 URL에 대체 도메인 이름을 사용하고, 최종 사용자와 CloudFront 간에 HTTPS를 사용하려면 해당 절차를 수행합니다.

SSL/TLS 인증서 받기

SSL/TLS 인증서를 받습니다(아직 없는 경우). 자세한 내용은 다음과 같이 해당 문서를 참조하세요.

  • AWS Certificate Manager(ACM)에서 제공하는 인증서를 사용하려면 AWS Certificate Manager 사용 설명서를 참조하세요. CloudFront 배포 업데이트 단원을 참조하세요.

    참고

    AWS 관리형 리소스에 대해 SSL/TLS 인증서를 프로비저닝 및 관리하고 배포할 때 ACM을 사용하는 것이 좋습니다. 미국 동부(버지니아 북부) 리전에서 ACM 인증서를 요청해야 합니다.

  • 다른 인증 기관(CA)의 인증서를 받으려면 인증 기관에서 제공한 설명서를 참조하세요. 인증서가 있으면 다음 절차로 진행합니다.

SSL/TLS 인증서 가져오기

다른 인증 기관의 인증서를 받았을 경우 ACM으로 가져오거나 IAM 인증서 스토어에 업로드합니다.

ACM(권장)

ACM에서 ACM 콘솔을 사용하거나 프로그래밍 방식으로 타사 인증서를 가져올 수 있습니다. 인증서를 ACM으로 가져오는 방법에 대한 자세한 내용은 AWS Certificate Manager 사용 설명서AWS Certificate Manager로 인증서 가져오기 섹션을 참조하세요. 미국 동부(버지니아 북부) 리전에서 인증서를 가져와야 합니다.

IAM 인증서 스토어

(권장하지 않음) 다음 AWS CLI 명령을 사용하여 서드 파티 인증서를 IAM 인증서 스토어에 업로드합니다.

aws iam upload-server-certificate \ --server-certificate-name CertificateName \ --certificate-body file://public_key_certificate_file \ --private-key file://privatekey.pem \ --certificate-chain file://certificate_chain_file \ --path /cloudfront/path/

다음을 참조하세요.

  • AWS 계정 – CloudFront 배포를 생성하는 데 사용한 것과 동일한 AWS 계정을 사용하여 인증서를 IAM 인증서 스토어로 업로드해야 합니다.

  • --path 파라미터 – 인증서를 IAM으로 업로드할 때 --path 파라미터(인증서 경로) 값은 /cloudfront/로 시작해야 합니다(예: /cloudfront/production/ 또는 /cloudfront/test/). 경로는 /로 끝나야 합니다.

  • 기존 인증서--server-certificate-name--path 파라미터에, 기존 인증서와 연결되어 있는 값과 다른 값을 지정해야 합니다.

  • CloudFront 콘솔 사용 – AWS CLI에서 --server-certificate-name 파라미터에 지정하는 값(예: myServerCertificate)은 CloudFront 콘솔의 SSL 인증서 목록에 나타납니다.

  • CloudFront API 사용 – AWS CLI에서 반환하는 영숫자 문자열(예:AS1A2M3P4L5E67SIIXR3J)을 메모해 둡니다. 이 문자열은 IAMCertificateId 요소에서 지정하는 값입니다. IAM ARN은 필요하지 않습니다. CLI에서도 반환되기 때문입니다.

AWS CLI에 대한 자세한 내용은 AWS Command Line Interface 사용 설명서AWS CLI 명령 참조를 참조하세요.

CloudFront 배포 업데이트

배포의 설정을 업데이트하려면 다음과 같이 합니다.

대체 도메인 이름을 사용하도록 CloudFront 배포를 구성하려면

  1. AWS Management Console에 로그인한 다음 https://console.aws.amazon.com/cloudfront/v3/home에서 CloudFront 콘솔을 엽니다.

  2. 업데이트하려는 배포의 ID를 선택합니다.

  3. [General] 탭에서 [Edit]를 선택합니다.

  4. 다음 값을 업데이트합니다.

    Alternate Domain Names (CNAMEs)

    해당 대체 도메인 이름을 추가합니다. 도메인 이름을 쉼표로 구분하거나 각각의 이름을 새 줄에 입력합니다.

    SSL 인증서

    Custom SSL Certificate(사용자 지정 SSL 인증서)를 선택하고 목록에서 인증서를 선택합니다.

    최대 100개의 인증서가 여기에 나열됩니다. 100개 이상의 인증서가 있고 추가할 인증서가 보이지 않는 경우에는 해당 필드에 인증서 ARN을 입력하여 선택할 수 있습니다.

    IAM 인증서 스토어에 인증서를 업로드했는데 목록에 나타나지 않아서 필드에 이름을 입력하는 방법으로 선택을 할 수 없는 경우에는 SSL/TLS 인증서 가져오기 절차를 검토하여 인증서를 올바르게 업로드했는지 확인합니다.

    중요

    SSL/TLS 인증서를 CloudFront 배포와 연결한 후에 모든 배포에서 인증서를 제거하고 배포의 상태가 배포됨(Deployed)으로 변경될 때까지 ACM 또는 IAM 인증서 스토어에서 인증서를 삭제하지 마세요.

    Clients Supported

    다음 중 해당 옵션을 선택합니다.

    • 모든 클라이언트(All Clients): CloudFront가 전용 IP 주소를 사용하여 HTTPS 콘텐츠를 제공합니다. 이 옵션을 선택하면 SSL/TLS 인증서를 활성화된 배포와 연결할 때 추가 요금이 발생합니다. 자세한 내용은 Amazon CloudFront 요금을 참조하세요.

    • Only Clients that Support Server Name Indication (SNI)(서버 이름 표시(SNI)를 지원하는 클라이언트만): SNI를 지원하지 않는 이전 브라우저 또는 기타 클라이언트는 다른 방법을 사용하여 콘텐츠에 액세스해야 합니다.

    자세한 내용은 CloudFront에서 HTTPS 요청을 제공하는 방식 선택 단원을 참조하세요.

  5. 예, 편집합니다를 선택합니다.

  6. CloudFront에서 최종 사용자와 CloudFront 간에 HTTPS를 요구하도록 구성:

    1. 동작 탭에서 업데이트할 캐시 동작을 선택하고 편집을 선택합니다.

    2. Viewer Protocol Policy(최종 사용자 프로토콜 정책)에 다음 값 중 하나를 지정합니다.

      Redirect HTTP to HTTPS

      최종 사용자가 두 프로토콜 모두 사용할 수 있지만, HTTP 요청은 자동으로 HTTPS 요청으로 리디렉션됩니다. CloudFront는 HTTP 상태 코드 301 (Moved Permanently)을 새로운 HTTPS URL과 함께 반환합니다. 그러면 최종 사용자는 HTTPS URL을 사용하여 이 요청을 CloudFront에 다시 제출합니다.

      중요

      CloudFront는 HTTP에서 HTTPS로 DELETE, OPTIONS, PATCH, POST 또는 PUT 요청을 리디렉션하지 않습니다. HTTPS에 리디렉션할 캐시 동작을 구성하는 경우, CloudFront는 해당 캐시 동작에 대한 HTTP DELETE, OPTIONS, PATCH, POST, 또는 PUT 요청에 HTTP 상태 코드 403 (Forbidden)으로 응답합니다.

      최종 사용자가 HTTPS 요청으로 리디렉션되는 HTTP 요청을 만들 경우 CloudFront에서 두 요청 모두에 대해 요금을 부과합니다. HTTP 요청의 경우에는 CloudFront에서 최종 사용자에게 반환되는 요청 및 헤더에만 요금이 부과됩니다. HTTPS 요청의 경우에는 요청, 헤더, 그리고 오리진에 의해 반환된 파일을 모두 처리합니다.

      HTTPS Only

      최종 사용자가 HTTPS를 사용할 경우에만 콘텐츠에 액세스할 수 있습니다. 최종 사용자가 HTTPS 요청 대신에 HTTP 요청을 보내면 CloudFront는 HTTP 상태 코드 403 (Forbidden)을 반환하고 파일은 반환하지 않습니다.

    3. 예, 편집합니다를 선택합니다.

    4. 최종 사용자와 CloudFront 간에 HTTPS를 요구하려는 추가적인 캐시 동작 각각에 대해 단계 a부터 c까지 반복합니다.

  7. 업데이트한 구성을 프로덕션 환경에서 사용하기 전에 다음 사항을 확인합니다.

    • 각 캐시 동작의 경로 패턴이 최종 사용자에 HTTPS를 사용하도록 지정한 요청에만 적용되는가.

    • 캐시 동작이 CloudFront에서 평가하도록 할 순서대로 나열되었는가. 자세한 내용은 경로 패턴 단원을 참조하세요.

    • 캐시 동작이 올바른 오리진에 요청을 라우팅하는가.