[고가용성 및 스케일링성] Elastic Load Balancer - SSL 인증서

IMKUNYOUNG·2024년 8월 12일
0

AWS-SAA

목록 보기
35/91

인터넷 보안의 기초가 되는 SSL/TLS 인증서는 클라이언트와 서버 간의 통신을 안전하게 암호화하는 데 사용됩니다. 이 글에서는 SSL/TLS 인증서의 기본 개념부터, SNI(Server Name Indication) 기술과 로드 밸런서에서의 SSL 처리 방식을 다루어 보겠습니다.

SSL/TLS 인증서의 기본 개념

SSL(Secure Sockets Layer)은 클라이언트와 서버 간의 데이터를 암호화하여 전송하는 기술로, 이를 통해 제 3자가 데이터에 접근할 수 없도록 보호합니다. SSL의 후속 버전인 TLS(Transport Layer Security)는 더 강화된 보안을 제공하며, 현재 웹 보안의 표준으로 자리 잡고 있습니다.

SSL/TLS 인증서는 퍼블릭 인증 기관(CA)에서 발급되며, 대표적인 CA로는 코모도, Symantec, 고 대디, GlobalSign, 디지서트, Let's Encrypt 등이 있습니다. 이러한 인증서는 주기적으로 갱신해야 하며, 만료된 인증서를 사용할 경우 웹사이트에 접속할 때 보안 경고가 표시됩니다.

로드 밸런서에서의 SSL 처리

로드 밸런서는 대규모 트래픽을 처리하는 서버 환경에서 필수적인 요소로, SSL 인증서와 결합되어 클라이언트와의 안전한 통신을 보장합니다. 사용자가 HTTPS로 웹사이트에 접속하면, 로드 밸런서는 내부적으로 SSL 종료 (SSL Termination)를 수행합니다. 이는 클라이언트와 로드 밸런서 간의 통신을 암호화하고, 이후 트래픽을 암호화되지 않은 상태로 백엔드 서버로 전달하는 방식입니다. 이러한 과정은 안전한 VPC 내에서 이루어져 외부 공격으로부터 보호됩니다.

AWS(Amazon Web Services)에서는 ACM(AWS Certificate Manager)을 통해 SSL/TLS 인증서를 관리할 수 있습니다. ACM을 사용하면 인증서를 쉽게 생성, 배포 및 갱신할 수 있어 보안 관리를 간소화할 수 있습니다.

SNI(Server Name Indication)의 역할

SNI는 SSL/TLS 프로토콜의 확장 기능으로, 단일 웹 서버 또는 로드 밸런서에서 여러 SSL 인증서를 사용해 다중 도메인을 지원할 수 있도록 합니다. 클라이언트가 서버와 SSL 핸드셰이크를 시작할 때 접속하려는 호스트 이름을 지정함으로써, 서버는 해당 도메인에 맞는 SSL 인증서를 제공할 수 있습니다. 이는 특히 다수의 웹사이트를 운영하는 환경에서 중요한 기능입니다.

SNI는 애플리케이션 로드 밸런서(ALB)와 네트워크 로드 밸런서(NLB)에서 지원되며, 이를 통해 다양한 웹사이트와 도메인 간의 SSL 연결을 효과적으로 관리할 수 있습니다. 하지만, 구 버전의 클래식 로드 밸런서에서는 SNI가 지원되지 않으므로, 여러 호스트 이름을 지원하려면 각기 다른 로드 밸런서를 설정해야 합니다.

SNI와 SSL/TLS 인증서의 통합

ALB와 NLB와 같은 최신 로드 밸런서에서는 SNI를 사용하여 여러 개의 SSL 인증서를 관리할 수 있습니다. 예를 들어, ALB에 'www.mycorp.com'과 Domain1.example.com'이라는 두 개의 도메인이 설정되어 있다면, 클라이언트가 해당 도메인에 접속할 때 SNI를 통해 올바른 SSL 인증서를 자동으로 선택할 수 있습니다.

이로 인해, 로드 밸런서는 다중 도메인 환경에서 트래픽을 효과적으로 분산시키고, 각 도메인에 맞는 보안을 유지할 수 있습니다.

마치며

SSL/TLS 인증서와 SNI 기술은 현대 웹 보안에서 중요한 역할을 담당하고 있습니다. SSL 인증서를 사용한 암호화는 데이터 전송의 안전성을 보장하고, SNI를 통한 다중 도메인 지원은 효율적인 서버 운영을 가능하게 합니다. 로드 밸런서를 사용하는 대규모 웹사이트 환경에서 이들 기술을 적절히 활용하면, 사용자는 안전하고 신뢰할 수 있는 웹 경험을 제공받을 수 있습니다.

0개의 댓글