

# CloudFront에서 HTTPS 사용
<a name="using-https"></a>

뷰어가 HTTPS를 사용할 것을 요청하도록 CloudFront를 구성할 수 있습니다. 이렇게 하면 CloudFront가 뷰어와 통신할 때 연결이 암호화됩니다. 또한 CloudFront가 오리진과 HTTPS를 사용하도록 구성할 수 있습니다. 이렇게 하면 CloudFront가 오리진과 통신할 때 연결이 암호화됩니다.

CloudFront가 뷰어와 통신할 때 그리고 오리진과 통신할 때 모두 HTTPS를 요구하도록 구성할 경우, CloudFront에서 요청을 받을 때 다음과 같은 프로세스가 수행됩니다.

1. 최종 사용자가 HTTPS 요청을 CloudFront에 제출합니다. 뷰어와 CloudFront 간에 SSL/TLS 협상이 수행됩니다. 결국에는 최종 사용자가 암호화된 형식을 요청을 제출합니다.

1. CloudFront 엣지 로케이션에 캐시 응답을 포함하는 경우 CloudFront가 응답을 암호화하여 뷰어에게 반환하면 뷰어는 이를 해독합니다.

1. CloudFront 엣지 로케이션에 캐시 응답을 포함하지 않는 경우 CloudFrontnt는 오리진과 SSL/TLS 협상을 수행하며 협상이 완료되면 요청을 암호화된 형식으로 오리진에 전달합니다.

1. 오리진은 요청을 복호화한 후 요청을 처리하여 응답을 생성 및 암호화한 후 CloudFront에 반환합니다.

1. CloudFront는 응답을 복호화한 후 다시 암호화하여 뷰어에게 전달합니다. 또한 CloudFront는 엣지 로케이션에 응답을 캐시하여 다음에 요청할 때 사용할 수 있도록 합니다.

1. 최종 사용자가 응답을 해독합니다.

이 프로세스는 오리진 서버가 Amazon S3 버킷이든, MediaStore이든, HTTP/S 서버와 같은 사용자 지정 오리진이든 상관없이 기본적으로 동일하게 작동합니다.

**참고**  
SSL 재협상 유형 공격을 차단하기 위해 CloudFront는 최종 사용자와 오리진의 요청에 대한 재협상을 지원하지 않습니다.

또는 CloudFront 배포에 대해 상호 인증을 켤 수 있습니다. 자세한 내용은 [CloudFront에 대한 상호 TLS 인증(뷰어 mTLS)CloudFront에 대한 오리진 상호 TLS](mtls-authentication.md) 섹션을 참조하세요.

최종 사용자와 CloudFront 간에 그리고 CloudFront와 오리진 간에 HTTPS를 요청하는 방법을 알아보려면 다음 주제를 참조하세요.

**Topics**
+ [뷰어와 CloudFront 간에 HTTPS 요구](using-https-viewers-to-cloudfront.md)
+ [사용자 지정 오리진에 대해 HTTPS 요구](using-https-cloudfront-to-custom-origin.md)
+ [Amazon S3 오리진에 대해 HTTPS 요구](using-https-cloudfront-to-s3-origin.md)
+ [최종 사용자와 CloudFront 간에 지원되는 프로토콜 및 암호](secure-connections-supported-viewer-protocols-ciphers.md)
+ [CloudFront와 오리진 간에 지원되는 프로토콜 및 암호](secure-connections-supported-ciphers-cloudfront-to-origin.md)

# 뷰어와 CloudFront 간의 통신에 HTTPS 요구
<a name="using-https-viewers-to-cloudfront"></a>

CloudFront 배포에 하나 이상의 캐시 동작을 구성하여 최종 사용자와 CloudFront 간의 통신에 HTTPS를 요구할 수 있습니다. 또한 CloudFront가 일부 객체에 대해서만 HTTPS를 요구하도록 하기 위해 HTTP 및 HTTPS 모두를 허용하는 캐시 동작을 한 개 이상 구성할 수 있습니다. 구성 단계는 객체 URL에 사용하는 도메인 이름에 따라 다릅니다.
+ CloudFront가 배포에 할당한 도메인 이름(예: d111111abcdef8.cloudfront.net)을 사용할 경우 한 개 이상의 캐시 동작에 대해 **최종 사용자 프로토콜 정책(Viewer Protocol Policy)** 설정을 변경하여 HTTPS 통신을 요구하도록 합니다. 이 구성에서 CloudFront는 SSL/TLS 인증서를 제공합니다.

  CloudFront 콘솔을 사용하여 **최종 사용자 프로토콜 정책(Viewer Protocol Policy)** 값을 변경하려면 이 단원의 절차를 참조하세요.

  CloudFront API를 사용하여 `ViewerProtocolPolicy` 요소의 값을 변경하는 방법을 보려면 *Amazon CloudFront API 참조*의 [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)을 참조하세요.
+ example.com 등의 자체 도메인 이름을 사용할 경우 몇 가지 CloudFront 설정을 변경해야 합니다. 또한 AWS Certificate Manager(ACM)에서 제공한 SSL/TLS 인증서를 사용하거나, 다른 인증 기관의 인증서를 또는 IAM 인증서 스토어로 가져와야 합니다. 자세한 내용은 [대체 도메인 이름과 HTTPS 사용](using-https-alternate-domain-names.md) 단원을 참조하세요.

**참고**  
CloudFront가 오리진에서 객체를 받을 때 최종 사용자가 CloudFront로부터 받는 객체가 암호화되도록 하려면 CloudFront와 오리진 간에 항상 HTTPS를 사용하세요. 최근에 CloudFront와 오리진 간의 연결을 HTTP에서 HTTPS로 변경한 경우 CloudFront 엣지 로케이션의 객체를 무효화할 것을 권장합니다. CloudFront는 최종 사용자가 사용한 프로토콜(HTTP 또는 HTTPS)이, CloudFront가 객체를 받는 데 사용한 프로토콜과 일치하는지와 상관없이 최종 사용자에게 객체를 반환합니다. 배포에서 객체 제거 또는 대체에 대한 자세한 내용은 [CloudFront가 배포하는 콘텐츠 추가, 제거 또는 교체](AddRemoveReplaceObjects.md) 단원을 참조하십시오.

## 뷰어에 HTTPS 요구
<a name="configure-cloudfront-HTTPS-viewers"></a>

하나 이상의 캐시 동작에 대해 최종 사용자와 CloudFront 간에 HTTPS를 요구하려면 다음과 같이 하세요.<a name="using-https-viewers-to-cloudfront-procedure"></a>

**CloudFront에서 최종 사용자와 CloudFront 간에 HTTPS를 요구하도록 구성하려면**

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

1. CloudFront 콘솔의 상단 창에서 업데이트할 배포의 ID를 선택합니다.

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

1. **최종 사용자 프로토콜 정책**에 다음 값 중 하나를 지정합니다.  
**Redirect HTTP to HTTPS**  
최종 사용자가 두 프로토콜을 모두 사용할 수 있습니다. HTTP `GET` 및 `HEAD` 요청은 HTTPS 요청으로 자동 리디렉션됩니다. CloudFront는 HTTP 상태 코드 301(영구 이동됨)을 새로운 HTTPS URL과 함께 반환합니다. 그러면 최종 사용자는 HTTPS URL을 사용하여 이 요청을 CloudFront에 다시 제출합니다.  
HTTP를 통해 `POST`, `PUT`, `DELETE`, `OPTIONS` 또는 `PATCH`를 HTTP - HTTPS 캐시 동작 및 HTTP 1.1 이상의 요청 프로토콜 버전으로 보내면, CloudFront는 HTTP 상태 코드 307(임시 리디렉션)과 함께 HTTPS 위치로 요청을 리디렉션합니다. 이렇게 하면 요청이 동일한 메서드와 본문 페이로드를 사용하여 새 위치로 다시 전송됩니다.  
`POST`, `PUT`, `DELETE`, `OPTIONS` 또는 `PATCH` 요청을 HTTP - HTTPS 캐시 동작을 통해 HTTP 1.1 미만인 요청 프로토콜 버전으로 보내면, CloudFront는 HTTP 상태 코드 403(사용할 수 없음)을 반환합니다.
최종 사용자가 HTTPS 요청으로 리디렉션되는 HTTP 요청을 만들 경우 CloudFront에서 두 요청 모두에 대해 요금을 부과합니다. HTTP 요청의 경우에는 CloudFront에서 최종 사용자에게 반환되는 요청 및 헤더에만 요금이 부과됩니다. HTTPS 요청의 경우에는 요청, 헤더, 그리고 오리진에 의해 반환된 객체에 대해 요금이 부과됩니다.  
**HTTPS Only**  
최종 사용자가 HTTPS를 사용할 경우에만 콘텐츠에 액세스할 수 있습니다. 최종 사용자가 HTTPS 요청 대신에 HTTP 요청을 보내면 CloudFront는 HTTP 상태 코드 403(금지됨)을 반환하고 객체는 반환하지 않습니다.

1. **변경 사항 저장**을 선택합니다.

1. 최종 사용자와 CloudFront 간에 HTTPS를 요구하려는 캐시 동작에 대해 3\$15단계를 반복합니다.

1. 업데이트한 구성을 프로덕션 환경에서 사용하기 전에 다음 사항을 확인합니다.
   + 각 캐시 동작의 경로 패턴이 최종 사용자에 HTTPS를 사용하도록 지정한 요청에만 적용되는가.
   + 캐시 동작이 CloudFront에서 평가하도록 할 순서대로 나열되었는가. 자세한 내용은 [경로 패턴](DownloadDistValuesCacheBehavior.md#DownloadDistValuesPathPattern) 단원을 참조하세요.
   + 캐시 동작이 올바른 오리진에 요청을 라우팅하는가.

# CloudFront와 사용자 지정 오리진 간의 통신에 HTTPS 요구
<a name="using-https-cloudfront-to-custom-origin"></a>

CloudFront와 오리진 간의 통신에 HTTPS를 요청할 수 있습니다.

**참고**  
오리진이 웹 사이트 엔드포인트로 구성된 Amazon S3 버킷인 경우, Amazon S3에서 웹 사이트 엔드포인트로 HTTPS를 지원하지 않으므로 오리진에 HTTPS를 사용하도록 CloudFront를 구성할 수 없습니다.

CloudFront와 오리진 간에 HTTPS를 요청하려면 이 항목의 절차에 따라 다음을 수행하세요.

1. 배포에서 오리진에 대한 **오리진 프로토콜 정책** 설정을 변경합니다.

1. 오리진 서버에 SSL/TLS 인증서를 설치합니다(Amazon S3 오리진 또는 기타 특정 AWS 오리진을 사용하는 경우 필요 없음).

**Topics**
+ [사용자 지정 오리진에 HTTPS 요구](#using-https-cloudfront-to-origin-distribution-setting)
+ [사용자 지정 오리진에 SSL/TLS 인증서 설치](#using-https-cloudfront-to-origin-certificate)

## 사용자 지정 오리진에 HTTPS 요구
<a name="using-https-cloudfront-to-origin-distribution-setting"></a>

다음 절차는 CloudFront에서 HTTPS를 사용하여 Elastic Load Balancing 로드 밸런서, Amazon EC2 인스턴스 또는 다른 사용자 지정 오리진과 통신하도록 구성하는 방법을 보여 줍니다. CloudFront API를 사용한 배포 업데이트에 대한 자세한 내용은 *Amazon CloudFront API 참조*의 [배포 업데이트](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)를 참조하십시오.<a name="using-https-cloudfront-to-custom-origin-procedure"></a>

**CloudFront에서 CloudFront와 사용자 지정 오리진 간에 HTTPS를 요구하도록 구성하려면**

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

1. CloudFront 콘솔의 상단 창에서 업데이트할 배포의 ID를 선택합니다.

1. **동작** 탭에서 업데이트할 오리진을 선택하고 **편집**을 선택합니다.

1. 다음 설정을 업데이트합니다.  
**오리진 프로토콜 정책**  
배포의 해당 오리진에 대해 **오리진 프로토콜 정책**을 변경합니다.  
   + **HTTPS만(HTTPS Only)** - CloudFront에서 사용자 지정 오리진과 통신할 때 HTTPS만 사용합니다.
   + **최종 사용자와 일치(Match Viewer)** - CloudFront에서 최종 사용자 요청의 프로토콜에 따라 HTTP 또는 HTTPS를 사용하여 사용자 지정 오리진과 통신합니다. 예를 들면 **오리진 프로토콜 정책(Origin Protocol Policy)**에 **최종 사용자와 일치(Match Viewer)**를 선택하고 최종 사용자가 HTTPS를 사용하여 CloudFront에서 객체를 요청하는 경우, CloudFront에서도 HTTPS를 사용하여 해당 요청을 오리진으로 전달합니다.

     **Viewer Protocol Policy**(최종 사용자 프로토콜 정책)에서 **Redirect HTTP to HTTPS**(HTTP를 HTTPS로 재지정) 또는 **HTTPS Only**(HTTPS만 해당)를 지정한 경우에만 **Match Viewer**를 선택합니다.

     최종 사용자가 HTTP 및 HTTPS 프로토콜 모두를 사용하여 요청하더라도 CloudFront에서는 한 번만 객체를 캐싱합니다.  
**오리진 SSL 프로토콜**  
배포의 해당 오리진에 대해 **오리진 SSL 프로토콜**을 선택합니다. SSLv3 프로토콜이 덜 안전하므로 사용자가 TLSv1 이상을 지원하지 않는 경우에만 SSLv3을 선택하는 것이 좋습니다. TLSv1 핸드쉐이크는 SSLv3의 이전 버전 및 이후 버전과 모두 호환되지만, TLSv1.1 이상은 호환되지 않습니다. SSLv3을 선택하면 CloudFront는 SSLv3 핸드셰이크 요청*만* 보냅니다.

1. **변경 사항 저장**을 선택합니다.

1. CloudFront와 사용자 지정 오리진 간에 HTTPS를 요구하려는 다른 오리진에 대해 3\$15단계를 반복합니다.

1. 업데이트한 구성을 프로덕션 환경에서 사용하기 전에 다음 사항을 확인합니다.
   + 각 캐시 동작의 경로 패턴이 최종 사용자에 HTTPS를 사용하도록 지정한 요청에만 적용되는가.
   + 캐시 동작이 CloudFront에서 평가하도록 할 순서대로 나열되었는가. 자세한 내용은 [경로 패턴](DownloadDistValuesCacheBehavior.md#DownloadDistValuesPathPattern) 단원을 참조하세요.
   + 캐시 동작은 변경한 **오리진 프로토콜 정책**에 따라 요청을 오리진으로 라우팅합니다.

## 사용자 지정 오리진에 SSL/TLS 인증서 설치
<a name="using-https-cloudfront-to-origin-certificate"></a>

사용자 지정 오리진에서 다음 소스의 SSL/TLS 인증서를 사용할 수 있습니다.
+ 오리진이 Elastic Load Balancing 로드 밸런서인 경우 AWS Certificate Manager(ACM)에서 제공하는 인증서를 사용할 수 있습니다. 또한 신뢰할 수 있는 다른 인증 기관에서 서명한 인증서 및 ACM으로 가져온 인증서를 사용할 수도 있습니다.
+ Elastic Load Balancing 로드 밸런서 외의 오리진에서는 Comodo, DigiCert, Symantec 같이 신뢰할 수 있는 서드 파티 인증 기관(CA)에서 서명한 인증서를 사용해야 합니다.

오리진에서 반환되는 인증서는 다음 도메인 이름 중 하나를 포함하고 있어야 합니다.
+ 오리진의 **오리진 도메인(Origin domain)** 필드(CloudFront API의 `DomainName` 필드)에 있는 도메인 이름.
+ 캐시 동작이 `Host` 헤더를 오리진으로 전달하도록 구성된 경우, `Host` 헤더의 도메인 이름.

CloudFront가 HTTPS를 사용하여 오리진과 통신하면 CloudFront는 인증서가 신뢰할 수 있는 인증 기관에 의해 발급되었는지 확인합니다. CloudFront는 Mozilla가 지원하는 것과 동일한 인증 기관을 지원합니다. 최신 목록은 [Mozilla에 포함된 CA 인증서 목록](https://wiki.mozilla.org/CA/Included_Certificates)을 참조하십시오. CloudFront와 오리진 간의 HTTPS 통신에는 자체 서명한 인증서를 사용할 수 없습니다.

**중요**  
오리진 서버에서 만료된 인증서, 잘못된 인증서 또는 자체 서명된 인증서를 반환하는 경우 또는 오리진 서버에서 잘못된 순서로 인증서 체인을 반환하는 경우에는 CloudFront에서 TCP 연결을 끊고 HTTP 상태 코드 502(잘못된 게이트웨이)를 뷰어로 반환하며 `X-Cache` 헤더를 `Error from cloudfront`로 설정합니다. 또한 중간 인증서를 포함하여 인증서의 전체 체인이 없는 경우, CloudFront는 TCP 연결을 끊습니다.

# CloudFront와 Amazon S3 오리진 간의 통신에 HTTPS 요구
<a name="using-https-cloudfront-to-s3-origin"></a>

오리진이 Amazon S3 버킷인 경우 CloudFront와 통신을 위해 HTTPS를 사용하는 옵션은 버킷을 사용하는 방식에 따라 달라집니다. 웹 사이트 엔드포인트로 Amazon S3 버킷이 구성되어 있는 경우, Amazon S3에서 해당 구성으로 HTTPS 연결을 지원하지 않으므로 HTTPS를 사용하여 오리진과 통신하도록 CloudFront를 구성할 수 없습니다.

오리진이 HTTPS 통신을 지원하는 Amazon S3 버킷일 경우 CloudFront는 뷰어가 요청을 전송하는 데 사용된 프로토콜을 사용하여 S3로 요청을 전달합니다. [프로토콜(사용자 지정 오리진만 해당)](DownloadDistValuesOrigin.md#DownloadDistValuesOriginProtocolPolicy) 설정의 기본 설정은 **최종 사용자와 일치(Match Viewer)**이며 변경할 수 없습니다. 그러나 Amazon S3 오리진에 대해 오리진 액세스 제어(OAC)를 사용 설정하면 CloudFront와 Amazon S3 간에 사용되는 통신은 사용자가 어떻게 설정하는지에 따라 달라집니다. 자세한 내용은 [새 오리진 액세스 제어 생성](private-content-restricting-access-to-s3.md#create-oac-overview-s3) 섹션을 참조하세요.

CloudFront와 Amazon S3 간의 통신에 HTTPS를 요구하려면, **최종 사용자 프로토콜 정책(Viewer Protocol Policy)** 값을 **Redirect HTTP to HTTPS(HTTP를 HTTPS로 재지정)** 또는 **HTTPS Only(HTTPS만)**로 변경해야 합니다. 이 단원의 나머지 절차에서는 CloudFront 콘솔을 사용하여 **최종 사용자 프로토콜 정책(Viewer Protocol Policy)** 값을 변경하는 방법을 설명합니다. CloudFront API를 사용하여 배포용 `ViewerProtocolPolicy` 요소를 업데이트하는 자세한 내용은 *Amazon CloudFront API 참조*의 [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)을 참조하세요.

HTTPS 통신을 지원하는 Amazon S3 버킷과 함께 HTTPS를 사용하면 Amazon S3가 SSL/TLS 인증서를 제공하므로 사용자가 제공할 필요가 없습니다.

## Amazon S3 오리진에 대해 HTTPS 요구
<a name="configure-cloudfront-HTTPS-S3-origin"></a>

다음 절차에서는 CloudFront에서 Amazon S3 오리진에 대해 HTTPS를 요구하도록 구성하는 방법을 알아봅니다.<a name="using-https-cloudfront-to-s3-origin-procedure"></a>

**CloudFront에서 Amazon S3 오리진에 대해 HTTPS를 요구하도록 구성하려면**

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

1. CloudFront 콘솔의 상단 창에서 업데이트할 배포의 ID를 선택합니다.

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

1. **최종 사용자 프로토콜 정책**에 다음 값 중 하나를 지정합니다.  
**Redirect HTTP to HTTPS**  
최종 사용자가 두 프로토콜 모두 사용할 수 있지만, HTTP 요청은 자동으로 HTTPS 요청으로 리디렉션됩니다. CloudFront는 HTTP 상태 코드 301(영구 이동됨)을 새로운 HTTPS URL과 함께 반환합니다. 그러면 최종 사용자는 HTTPS URL을 사용하여 이 요청을 CloudFront에 다시 제출합니다.  
CloudFront는 HTTP에서 HTTPS로 `DELETE`, `OPTIONS`, `PATCH`, `POST` 또는 `PUT` 요청을 리디렉션하지 않습니다. HTTPS에 리디렉션할 캐시 동작을 구성하는 경우, CloudFront는 해당 캐시 동작에 대한 HTTP `DELETE`, `OPTIONS`, `PATCH`, `POST`, 또는 `PUT` 요청에 HTTP 상태 코드 403(금지됨)으로 응답합니다.
최종 사용자가 HTTPS 요청으로 리디렉션되는 HTTP 요청을 만들 경우 CloudFront에서 두 요청 모두에 대해 요금을 부과합니다. HTTP 요청의 경우에는 CloudFront에서 최종 사용자에게 반환되는 요청 및 헤더에만 요금이 부과됩니다. HTTPS 요청의 경우에는 요청, 헤더, 그리고 오리진에 의해 반환된 객체 모두에 요금이 부과됩니다.  
**HTTPS Only**  
최종 사용자가 HTTPS를 사용할 경우에만 콘텐츠에 액세스할 수 있습니다. 최종 사용자가 HTTPS 요청 대신에 HTTP 요청을 보내면 CloudFront는 HTTP 상태 코드 403(금지됨)을 반환하고 객체는 반환하지 않습니다.

1. **예, 편집합니다**를 선택합니다.

1. 최종 사용자와 CloudFront 간에 그리고 CloudFront와 S3 간에 HTTPS를 요구하려는 캐시 동작에 대해 3\$15단계를 반복합니다.

1. 업데이트한 구성을 프로덕션 환경에서 사용하기 전에 다음 사항을 확인합니다.
   + 각 캐시 동작의 경로 패턴이 최종 사용자에 HTTPS를 사용하도록 지정한 요청에만 적용되는가.
   + 캐시 동작이 CloudFront에서 평가하도록 할 순서대로 나열되었는가. 자세한 내용은 [경로 패턴](DownloadDistValuesCacheBehavior.md#DownloadDistValuesPathPattern) 단원을 참조하세요.
   + 캐시 동작이 올바른 오리진에 요청을 라우팅하는가.

# 최종 사용자와 CloudFront 간에 지원되는 프로토콜 및 암호
<a name="secure-connections-supported-viewer-protocols-ciphers"></a>

[최종 사용자와 CloudFront 배포 간에 HTTPS가 필요](DownloadDistValuesCacheBehavior.md#DownloadDistValuesViewerProtocolPolicy)한 경우 [보안 정책](DownloadDistValuesGeneral.md#DownloadDistValues-security-policy)을 선택해야 하며 이는 다음 설정을 결정합니다.
+ CloudFront가 최종 사용자와 통신하는 데 사용하는 최소 SSL/TLS 프로토콜.
+ CloudFront가 최종 사용자와의 통신을 암호화할 때 사용할 수 있는 암호

보안 정책을 선택하려면 [보안 정책(최소 SSL/TLS 버전)](DownloadDistValuesGeneral.md#DownloadDistValues-security-policy)에 해당 값을 지정합니다. 다음 표에는 CloudFront가 각 보안 정책에 사용할 수 있는 프로토콜 및 암호가 나와 있습니다.

최종 사용자는 지원되는 암호 중 하나 이상을 지원하여 CloudFront와의 HTTPS 연결을 설정해야 합니다. CloudFront에서는 최종 사용자가 지원하는 암호 중에서 나열된 순서대로 암호를 선택합니다. 또한 [OpenSSL, s2n 및 RFC 암호 이름](#secure-connections-openssl-rfc-cipher-names) 단원도 참조하십시오.


|  | 보안 정책 |  | SSLv3 | TLSv1 | TLSv1\$12016 | TLSv1.1\$12016 | TLSv1.2\$12018 | TLSv1.2\$12019 | TLSv1.2\$12021 | TLSv1.2\$12025 | TLSv1.3\$12025 | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| 지원되는 SSL/TLS 프로토콜 | 
| TLSv1.3 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | 
| TLSv1.2 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ |  | 
| TLSv1.1 | ♦ | ♦ | ♦ | ♦ |  |  |  |  |  | 
| TLSv1 | ♦ | ♦ | ♦ |  |  |  |  |  |  | 
| SSLv3 | ♦ |  |  |  |  |  |  |  |  | 
| 지원되는 TLSv1.3 암호 | 
| TLS\$1AES\$1128\$1GCM\$1SHA256 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | 
| TLS\$1AES\$1256\$1GCM\$1SHA384 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | 
| TLS\$1CHACHA20\$1POLY1305\$1SHA256 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ |  | ♦ | 
| 지원되는 ECDSA 암호 | 
| ECDHE-ECDSA-AES128-GCM-SHA256 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ |  | 
| ECDHE-ECDSA-AES128-SHA256 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ |  |  |  | 
| ECDHE-ECDSA-AES128-SHA | ♦ | ♦ | ♦ | ♦ |  |  |  |  |  | 
| ECDHE-ECDSA-AES256-GCM-SHA384 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ |  | 
| ECDHE-ECDSA-CHACHA20-POLY1305 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ |  |  | 
| ECDHE-ECDSA-AES256-SHA384 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ |  |  |  | 
| ECDHE-ECDSA-AES256-SHA | ♦ | ♦ | ♦ | ♦ |  |  |  |  |  | 
| 지원되는 RSA 암호 | 
| ECDHE-RSA-AES128-GCM-SHA256 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ |  | 
| ECDHE-RSA-AES128-SHA256 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ |  |  |  | 
| ECDHE-RSA-AES128-SHA | ♦ | ♦ | ♦ | ♦ |  |  |  |  |  | 
| ECDHE-RSA-AES256-GCM-SHA384 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ |  | 
| ECDHE-RSA-CHACHA20-POLY1305 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ |  |  | 
| ECDHE-RSA-AES256-SHA384 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ |  |  |  | 
| ECDHE-RSA-AES256-SHA | ♦ | ♦ | ♦ | ♦ |  |  |  |  |  | 
| AES128-GCM-SHA256 | ♦ | ♦ | ♦ | ♦ | ♦ |  |  |  |  | 
| AES256-GCM-SHA384 | ♦ | ♦ | ♦ | ♦ | ♦ |  |  |  |  | 
| AES128-SHA256 | ♦ | ♦ | ♦ | ♦ | ♦ |  |  |  |  | 
| AES256-SHA | ♦ | ♦ | ♦ | ♦ |  |  |  |  |  | 
| AES128-SHA | ♦ | ♦ | ♦ | ♦ |  |  |  |  |  | 
| DES-CBC3-SHA | ♦ | ♦ |  |  |  |  |  |  |  | 
| RC4-MD5 | ♦ |  |  |  |  |  |  |  |  | 

## OpenSSL, s2n 및 RFC 암호 이름
<a name="secure-connections-openssl-rfc-cipher-names"></a>

OpenSSL 및 [s2n](https://github.com/awslabs/s2n)은 TLS 표준에서 사용하는 암호 이름과 다른 이름을 사용합니다([RFC 2246](https://tools.ietf.org/html/rfc2246), [RFC 4346](https://tools.ietf.org/html/rfc4346), [RFC 5246](https://tools.ietf.org/html/rfc5246) 및 [RFC 8446](https://tools.ietf.org/html/rfc8446)). 다음 표에는 각 암호의 RFC 이름에 OpenSSL 및 s2n 이름이 매핑되어 있습니다.

CloudFront는 클래식 키 교환과 양자 보안 키 교환을 모두 지원합니다. 타원 곡선을 사용하는 클래식 키 교환의 경우 CloudFront는 다음을 지원합니다.
+ `prime256v1`
+ `X25519`
+ `secp384r1`

양자 보안 키 교환의 경우 CloudFront는 다음을 지원합니다.
+ `X25519MLKEM768`
+ `SecP256r1MLKEM768`
**참고**  
양자 보안 키 교환은 TLS 1.3에서만 지원됩니다. TLS 1.2 및 이전 버전은 양자 보안 키 교환을 지원하지 않습니다.

  자세한 내용은 다음 항목을 참조하세요.
  + [양자 내성 암호](https://aws.amazon.com/security/post-quantum-cryptography/)
  + [암호화 알고리즘 및 AWS 서비스](https://docs.aws.amazon.com/prescriptive-guidance/latest/encryption-best-practices/aws-cryptography-services.html#algorithms)
  + [TLS 1.3의 하이브리드 키 교환](https://datatracker.ietf.org/doc/draft-ietf-tls-hybrid-design/)

CloudFront의 인증서 요구 사항에 대한 자세한 내용은 [CloudFront에서 SSL/TLS 인증서를 사용하기 위한 요구 사항](cnames-and-https-requirements.md) 섹션을 참조하시기 바랍니다.


| OpenSSL 및 s2n 암호 이름 | RFC 암호화 이름 | 
| --- | --- | 
| 지원되는 TLSv1.3 암호 | 
| TLS\$1AES\$1128\$1GCM\$1SHA256 | TLS\$1AES\$1128\$1GCM\$1SHA256 | 
| TLS\$1AES\$1256\$1GCM\$1SHA384 | TLS\$1AES\$1256\$1GCM\$1SHA384 | 
| TLS\$1CHACHA20\$1POLY1305\$1SHA256 | TLS\$1CHACHA20\$1POLY1305\$1SHA256 | 
| 지원되는 ECDSA 암호 | 
| ECDHE-ECDSA-AES128-GCM-SHA256 | TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 | 
| ECDHE-ECDSA-AES128-SHA256 | TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 | 
| ECDHE-ECDSA-AES128-SHA | TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1128\$1CBC\$1SHA | 
| ECDHE-ECDSA-AES256-GCM-SHA384 | TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 | 
| ECDHE-ECDSA-CHACHA20-POLY1305 | TLS\$1ECDHE\$1ECDSA\$1WITH\$1CHACHA20\$1POLY1305\$1SHA256 | 
| ECDHE-ECDSA-AES256-SHA384 | TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384 | 
| ECDHE-ECDSA-AES256-SHA | TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA | 
| 지원되는 RSA 암호 | 
| ECDHE-RSA-AES128-GCM-SHA256 | TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 | 
| ECDHE-RSA-AES128-SHA256 | TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256  | 
| ECDHE-RSA-AES128-SHA | TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA | 
| ECDHE-RSA-AES256-GCM-SHA384 | TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384  | 
| ECDHE-RSA-CHACHA20-POLY1305 | TLS\$1ECDHE\$1RSA\$1WITH\$1CHACHA20\$1POLY1305\$1SHA256 | 
| ECDHE-RSA-AES256-SHA384 | TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  | 
| ECDHE-RSA-AES256-SHA | TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA | 
| AES128-GCM-SHA256 | TLS\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 | 
| AES256-GCM-SHA384 | TLS\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 | 
| AES128-SHA256 | TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 | 
| AES256-SHA | TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA | 
| AES128-SHA | TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA | 
| DES-CBC3-SHA  | TLS\$1RSA\$1WITH\$13DES\$1EDE\$1CBC\$1SHA  | 
| RC4-MD5 | TLS\$1RSA\$1WITH\$1RC4\$1128\$1MD5 | 

## 최종 사용자와 CloudFront 간에 지원되는 서명 체계
<a name="secure-connections-viewer-signature-schemes"></a>

CloudFront에서는 최종 사용자와 CloudFront 간의 연결을 위해 다음과 같은 서명 체계를 지원합니다.


|  | 보안 정책 | 서명 스키마 | SSLv3 | TLSv1 | TLSv1\$12016 | TLSv1.1\$12016 | TLSv1.2\$12018 | TLSv1.2\$12019 |  TLSv1.2\$12021 | TLSv1.2\$12025 | TLSv1.3\$12025 | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| TLS\$1SIGNATURE\$1SCHEME\$1RSA\$1PSS\$1PSS\$1SHA256 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | 
| TLS\$1SIGNATURE\$1SCHEME\$1RSA\$1PSS\$1PSS\$1SHA384 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | 
| TLS\$1SIGNATURE\$1SCHEME\$1RSA\$1PSS\$1PSS\$1SHA512 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | 
| TLS\$1SIGNATURE\$1SCHEME\$1RSA\$1PSS\$1RSAE\$1SHA256 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | 
| TLS\$1SIGNATURE\$1SCHEME\$1RSA\$1PSS\$1RSAE\$1SHA384 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | 
| TLS\$1SIGNATURE\$1SCHEME\$1RSA\$1PSS\$1RSAE\$1SHA512 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | 
| TLS\$1SIGNATURE\$1SCHEME\$1RSA\$1PKCS1\$1SHA256 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | 
| TLS\$1SIGNATURE\$1SCHEME\$1RSA\$1PKCS1\$1SHA384 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | 
| TLS\$1SIGNATURE\$1SCHEME\$1RSA\$1PKCS1\$1SHA512 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | 
| TLS\$1SIGNATURE\$1SCHEME\$1RSA\$1PKCS1\$1SHA224 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ |  |  | 
| TLS\$1SIGNATURE\$1SCHEME\$1ECDSA\$1SHA256 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | 
| TLS\$1SIGNATURE\$1SCHEME\$1ECDSA\$1SHA384 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | 
| TLS\$1SIGNATURE\$1SCHEME\$1ECDSA\$1SHA512 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | 
| TLS\$1SIGNATURE\$1SCHEME\$1ECDSA\$1SHA224 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ |  |  | 
| TLS\$1SIGNATURE\$1SCHEME\$1ECDSA\$1SECP256R1\$1SHA256 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | 
| TLS\$1SIGNATURE\$1SCHEME\$1ECDSA\$1SECP384R1\$1SHA384 | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | ♦ | 
| TLS\$1SIGNATURE\$1SCHEME\$1RSA\$1PKCS1\$1SHA1 | ♦ | ♦ | ♦ | ♦ |  |  |  |  |  | 
| TLS\$1SIGNATURE\$1SCHEME\$1ECDSA\$1SHA1 | ♦ | ♦ | ♦ | ♦ |  |  |  |  |  | 

# CloudFront와 오리진 간에 지원되는 프로토콜 및 암호
<a name="secure-connections-supported-ciphers-cloudfront-to-origin"></a>

[CloudFront와 오리진 간에 HTTPS 필요(require HTTPS between CloudFront and your origin)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginProtocolPolicy)를 선택하면 보안 연결을 [허용하기 위한 SSL/TLS 프로토콜](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginSSLProtocols)을 결정할 수 있으며 CloudFront가 아래 표에 나열된 ECDSA 또는 RSA 암호를 사용하여 오리진에 연결할 수 있습니다. 오리진에 대해 HTTPS 연결을 설정하려면 오리진이 CloudFront에 대해 이들 암호 중 하나 이상을 지원해야 합니다.

OpenSSL 및 [s2n](https://github.com/awslabs/s2n)은 TLS 표준에서 사용하는 암호 이름과 다른 이름을 사용합니다([RFC 2246](https://tools.ietf.org/html/rfc2246), [RFC 4346](https://tools.ietf.org/html/rfc4346), [RFC 5246](https://tools.ietf.org/html/rfc5246) 및 [RFC 8446](https://tools.ietf.org/html/rfc8446)). 다음 표에는 각 암호의 OpenSSL 및 s2n 이름, RFC 이름이 포함되어 있습니다.

타원 곡선 키 교환 알고리즘이 포함된 암호의 경우 CloudFront는 다음과 같은 타원 곡선을 지원합니다.
+ prime256v1
+ secp384r1
+ X25519


| OpenSSL 및 s2n 암호 이름 | RFC 암호화 이름 | 
| --- | --- | 
| 지원되는 ECDSA 암호 | 
| ECDHE-ECDSA-AES256-GCM-SHA384 | TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 | 
| ECDHE-ECDSA-AES256-SHA384 | TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384 | 
| ECDHE-ECDSA-AES256-SHA | TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA | 
| ECDHE-ECDSA-AES128-GCM-SHA256 | TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 | 
| ECDHE-ECDSA-AES128-SHA256 | TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 | 
| ECDHE-ECDSA-AES128-SHA | TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1128\$1CBC\$1SHA | 
| 지원되는 RSA 암호 | 
| ECDHE-RSA-AES256-GCM-SHA384 | TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 | 
| ECDHE-RSA-AES256-SHA384 | TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384 | 
| ECDHE-RSA-AES256-SHA | TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA | 
| ECDHE-RSA-AES128-GCM-SHA256 | TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 | 
| ECDHE-RSA-AES128-SHA256 | TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 | 
| ECDHE-RSA-AES128-SHA | TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA | 
| AES256-SHA | TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA | 
| AES128-SHA | TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA | 
| DES-CBC3-SHA | TLS\$1RSA\$1WITH\$13DES\$1EDE\$1CBC\$1SHA | 
| RC4-MD5 | TLS\$1RSA\$1WITH\$1RC4\$1128\$1MD5 | 

**CloudFront와 오리진 간에 지원되는 서명 체계**

CloudFront에서는 CloudFront와 오리진 간의 연결을 위해 다음과 같은 서명 체계를 지원합니다.
+ TLS\$1SIGNATURE\$1SCHEME\$1RSA\$1PKCS1\$1SHA256
+ TLS\$1SIGNATURE\$1SCHEME\$1RSA\$1PKCS1\$1SHA384
+ TLS\$1SIGNATURE\$1SCHEME\$1RSA\$1PKCS1\$1SHA512
+ TLS\$1SIGNATURE\$1SCHEME\$1RSA\$1PKCS1\$1SHA224
+ TLS\$1SIGNATURE\$1SCHEME\$1ECDSA\$1SHA256
+ TLS\$1SIGNATURE\$1SCHEME\$1ECDSA\$1SHA384
+ TLS\$1SIGNATURE\$1SCHEME\$1ECDSA\$1SHA512
+ TLS\$1SIGNATURE\$1SCHEME\$1ECDSA\$1SHA224
+ TLS\$1SIGNATURE\$1SCHEME\$1RSA\$1PKCS1\$1SHA1
+ TLS\$1SIGNATURE\$1SCHEME\$1ECDSA\$1SHA1