CloudFront 배포와 로드 밸런서 간의 HTTP 연결은 작동하지만 HTTPS 연결이 실패합니다. 이유가 무엇입니까?
최종 업데이트 날짜: 2020년 8월 6일
저는 Classic Load Balancer 또는 Application Load Balancer를 Amazon CloudFront 배포의 오리진으로 사용하고 있습니다. 로드 밸런서에 HTTPS 리스너와 HTTP 리스너가 둘 다 구성되어 있는데 CloudFront와 로드 밸런서 간의 HTTPS 통신이 실패합니다. 오리진 프로토콜 정책을 HTTP 전용으로 변경하면 연결이 작동합니다. HTTPS 통신 문제를 해결하려면 어떻게 해야 합니까?
해결 방법
HTTPS 통신 오류는 연결된 SSL 인증서, 보안 그룹 또는 네트워크 ACL(액세스 제어 목록)의 문제 때문일 수 있습니다. 배포 및 로드 밸런서가 다음 보안 요구 사항을 충족하는지 확인하십시오.
- 유효한 SSL 인증서가 로드 밸런서에 설치되어 있어야 합니다. SSL 인증서를 설치한 후에도 HTTPS 오류가 계속 나타나면 CloudFront와 사용자 지정 오리진 서버 간의 SSL 연결 문제를 해결하십시오.
- CloudFront 배포가 포트 443에서 로드 밸런서에 연결되는 경우 로드 밸런서와 연결된 보안 그룹은 CloudFront IP 주소에서 들어오는 트래픽(포트 443)을 허용해야 합니다. 보안 그룹 업데이트에 대한 자세한 내용은 Classic Load Balancer를 위한 보안 그룹 구성 또는 Application Load Balancer 보안 그룹을 참조하십시오.
- 로드 밸런서의 Amazon Virtual Private Cloud(Amazon VPC)에 연결된 네트워크 ACL은 HTTPS 포트(일반적으로 포트 443)에서 CloudFront의 트래픽을 허용해야 합니다.
참고: Application Load Balancer는 SNI(서버 이름 표시)를 사용한 스마트 선택 기능으로 여러 TLS 인증서를 지원합니다. 호스트 헤더에 기반하여 CloudFront 배포를 캐싱하는 경우, Application Load Balancer에 같은 이름의 TLS 인증서가 구성되어 있는지 확인하십시오. 그렇지 않으면 Application Load Balancer가 기본 인증서를 제공하며 이는 CloudFront의 ClientHello 메시지에 연결된 SNI와 일치하지 않을 수 있습니다.