HTTPS를 통해 사용자 지정 오리진에 CloudFront 배포를 연결할 때 발생하는 문제를 해결하려면 어떻게 해야 합니까?

3분 분량
0

HTTPS를 사용하여 사용자 지정 오리진에 연결하도록 Amazon CloudFront 배포를 구성했습니다. 이제 HTTP 상태 코드 502(잘못된 게이트웨이)와 함께 ‘CloudFront가 오리진에 연결할 수 없습니다’라는 오류가 표시됩니다.

해결 방법

CloudFront 배포의 오리진 도메인 이름이 인증서 도메인 이름과 일치하는지 확인

CloudFront 배포에 지정된 오리진 도메인 이름이 오리진 SSL/TLS 인증서의 도메인 이름과 일치하는지 확인합니다. 배포의 오리진 도메인 이름은 다음 중 하나와 일치할 수 있습니다.

  • 인증서의 일반 이름(CN)으로 지정된 도메인 이름
  • 인증서의 주체 대체 이름(SAN)에 지정된 도메인 이름

오리진 도메인 이름이 인증서에 연결된 도메인 이름과 일치하지 않는 경우, CloudFront는 HTTP 상태 코드 502(잘못된 게이트웨이)를 반환합니다.

중간 인증 기관의 누락 여부 확인

SSL 검사기를 사용하여 오리진의 인증서 체인을 사용할 수 있는지, 그리고 중간 인증 기관이 필요하지 않은지 테스트합니다.

Elastic Load Balancing을 사용자 지정 오리진으로 사용하고 있으며, 인증서 체인을 업데이트해야 하는 경우 다음을 수행합니다.

올바른 인증서 체인을 사용하여 인증서를 다시 업로드합니다.

-또는-

AWS Certificate Manager(ACM)를 사용하여 도메인을 보호하는 공개 인증서를 요청합니다. ACM은 Elastic Load Balancing과 완벽하게 통합됩니다.

오리진의 지원되는 프로토콜 정책 및 암호 테스트

SSL 핸드셰이크에 성공하려면 오리진이 CloudFront가 사용하는 암호를 지원해야 합니다.

오리진 프로토콜 정책에서 SSLv3이 켜져 있는 경우, CloudFront는 SSLv3만 사용하여 명령줄 또는 Windows 터미널에서 오리진과 통신합니다.

참고: OpenSSL은 일반적으로 리눅스와 macOS 시스템에서 기본적으로 사용할 수 있습니다. Windows용 OpenSSL은 OpenSSL 웹 사이트에서 사용할 수 있습니다.

오리진이 CloudFront가 사용하는 암호를 지원하는지 테스트하려면 다음 OpenSSL 명령을 실행합니다.

오리진 프로토콜 정책이 SSLv3로 설정된 경우 다음을 실행합니다.

echo | openssl s_client -ssl3 -cipher 'ECDHE-RSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-SHA384 ECDHE-RSA-AES256-SHA ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA AES256-SHA AES128-SHA DES-CBC3-SHA RC4-MD5 ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES256-SHA384 ECDHE-ECDSA-AES256-SHA ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-ECDSA-AES128-SHA256 ECDHE-ECDSA-AES128-SHA' -connect your.origin.domain:443

오리진이 TLS를 사용하는 경우, 다음 명령을 사용하여 각 프로토콜에 대해 오리진을 테스트합니다.

TLS의 경우 다음을 실행합니다.

echo | openssl s_client -tls1 -cipher 'ECDHE-RSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-SHA384 ECDHE-RSA-AES256-SHA ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA AES256-SHA AES128-SHA DES-CBC3-SHA RC4-MD5 ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES256-SHA384 ECDHE-ECDSA-AES256-SHA ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-ECDSA-AES128-SHA256 ECDHE-ECDSA-AES128-SHA' -connect your.origin.domain:443 -servername your.origin.domain

TLS 1.1의 경우 다음을 실행합니다.

echo | openssl s_client -tls1_1 -cipher 'ECDHE-RSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-SHA384 ECDHE-RSA-AES256-SHA ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA AES256-SHA AES128-SHA DES-CBC3-SHA RC4-MD5 ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES256-SHA384 ECDHE-ECDSA-AES256-SHA ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-ECDSA-AES128-SHA256 ECDHE-ECDSA-AES128-SHA' -connect your.origin.domain:443 -servername your.origin.domain

TLS 1.2의 경우 다음을 실행합니다.

echo | openssl s_client -tls1_2 -cipher 'ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES256-SHA384 AES256-SHA AES128-SHA DES-CBC3-SHA RC4-MD5 ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES256-SHA384 ECDHE-ECDSA-AES256-SHA ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-ECDSA-AES128-SHA256 ECDHE-ECDSA-AES128-SHA' -connect your.origin.domain:443 -servername your.origin.domain

참고: -servername 값을 원본 도메인 이름으로 설정합니다. 또는 CloudFront를 사용하여 호스트 헤더를 전달하는 경우 CloudFront 요청에서 -servername을 CNAME으로 설정합니다.

오리진에 연결되면 이전 명령에서 다음과 유사한 출력을 표시할 수 있습니다. 출력은 SSL 또는 TLS 버전 및 지원되는 암호를 사용하여 연결이 설정되었음을 확인합니다.

New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES128-SHA256
....
Timeout : 7200 (sec)
Verify return code: 0 (ok)
----
DONE

참고: 502 오류에 대한 추가적인 문제 해결 지침은 HTTP 502 상태 코드(잘못된 게이트웨이)를 참조하세요.


관련 정보

CloudFront와 사용자 지정 오리진 간의 통신에 HTTPS 요구

AWS 공식
AWS 공식업데이트됨 2년 전
댓글 없음

관련 콘텐츠