로드 밸런서에 연결하려고 할 때 클라이언트 SSL/TLS 협상 오류가 발생하는 이유는 무엇입니까?

최종 업데이트 날짜: 2020년 1월 31일

로드 밸런서에 연결을 시도할 때 SSL(Secure Sockets Layer)/TLS(전송 계층 보안) 협상 오류가 발생합니다. 이 오류가 발생하는 이유는 무엇입니까?

간략한 설명

클라이언트 TLS 협상 오류는 클라이언트가 시작한 TLS 연결을 의미하며 로드 밸런서와 세션을 설정할 수 없습니다. 클라이언트가 로드 밸런서의 보안 정책이 지원하지 않는 프로토콜 또는 암호를 사용하여 로드 밸런서에 연결하려고 할 때 TLS 협상 오류가 발생합니다. TLS 연결을 설정하려면 클라이언트가 다음을 지원하는지 확인합니다.

  • 하나 이상의 일치하는 암호
  • 보안 정책에 지정된 프로토콜

해결 방법

로드 밸런서의 보안 정책 식별

AWS Management Console에서 다음을 수행합니다.

1.    Amazon Elastic Compute Cloud(Amazon EC2) 콘솔을 엽니다.

2.    탐색 창의 [LOAD BALANCING(로드 밸렁싱)]에서 [Load Balancers(로드 밸런서)]를 선택합니다.

3.    로드 밸런서를 선택한 다음 [Listeners(수신기)]를 선택합니다.

4.    보안 정책을 봅니다.
       Application Load Balancers 및 Network Load Balancers의 경우 [Security policy(보안 정책)]열에서 보안 정책을 찾습니다.
       Classic Load Balancers의 [Cipher(암호)]열에서 [Change(변경)]을 선택하여 보안 정책을 봅니다.

AWS 명령줄 인터페이스(AWS CLI)에서 다음을 수행합니다.

로드 밸런서의 보안 정책에서 지원하는 프로토콜 및 암호 확인

Classic Load Balancer는 사용자 지정 보안 정책을 지원합니다. 하지만 Application Load Balancer 및 Network Load Balancer는 현재 사용자 지정 보안 정책을 지원하지 않습니다. 기본 보안 정책을 포함한 보안 정책에 대한 자세한 내용은 다음을 참조하십시오.

(선택 사항) 로드 밸런서의 보안 정책 테스트

로드 밸런서의 보안 정책에서 지원하는 프로토콜 및 암호를 테스트하려면 sslscan 같은 오픈 소스 명령줄 도구를 사용할 수 있습니다.

모든 Amazon EC2 Linux 인스턴스 또는 로컬 시스템에서 sslscan 명령을 설치하고 실행할 수 있습니다. 테스트하려는 로드 밸런서가 소스 IP 주소로부터의 TLS 연결을 수락하는지 확인합니다. Amazon Linux EC2 인스턴스에서 sslscan을 사용하려면:

1.    EPEL(Extra Packages for Enterprise Linux) 리포지토리를 활성화합니다.

2.    sudo yum install sslscan 명령을 실행합니다.

3.    다음 명령을 실행하여 지원되는 암호에 대해 로드 밸런서를 스캔합니다. example.com을 사용자 도메인 이름으로 바꿔야 합니다.

[ec2-user@ ~]$ sslscan --show-ciphers example.com

필요한 경우 로드 밸런서의 보안 정책 업데이트

지원되는 프로토콜 또는 암호를 사용하고 원하는 보안 수준을 달성하도록 로드 밸런서의 보안 정책을 업데이트해야 하는 경우 다음을 수행할 수 있습니다.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?