AWS DVA 항해기 - ELB + ASG - SSL 인증서

0

AWS-DVA

목록 보기
20/21

SSL / TLS

SSL/TLS
=> 클라이언트와 서버(또는 로드밸런서) 사이의 통신을 암호화해서 중간에서 패킷을 도청하거나 변조하는 걸 막아줌(in-flight encryption)

  • SSL(Secure Sockets Layer)
    => 연결을 암호화할 때 사용
  • TLS(Transport Layer Security)
    => SSL의 새 버전 / 전송 계층 보안을 의미SSL과 TLS 모두 전송 계층과 애플리케이션 계층 사이에서 동작하고 자체 포맷(X.509)은 동일하게 쓰이지만
    1. 프로토콜 문법(핸드셰이크 방법)
    1. 허용하는 암호화 알고리즘(암호 스위트)
    2. 보안 약점 제거 여부 등 기술적 세부사항들이 다르다

퍼블릭 SSL 인증서는 인증 기관에서 발행
ex) Comodo, GoDayy, GlobalSign, DigiCert, Letsencrypt, ..etc

인증서가 적용된 것

SSL 인증서는 사용자가 정한 만료 날짜가 존재 & 인증서의 진위 확인을 위해 주기적으로 갱신해야 함

  • 로드밸런서는 X.509 인증서를 사용하며, 이것을 SSL 또는 TLS 서버 인증서라고 부른다
  • ACM → AWS 인증서 관리자로 인증서를 등록하고 관리할 수 있다
  • HTTP 리스너를 설정할 때는 기본 인증서를 지정 & 인증서 목록을 추가해 여러 도메인 지원 가능
  • 클라이언트는 SIN(Server Name Indication: 서버 이름 표기)를 활용해 도달하려는 호스트 이름 지정 가능
  • HTTPS에 특정 보안 정책을 설정해서 레거시 클라이언트라고 불리는 SSL / TLS 구버전 지원 가능

SNI(Server Name Indiciation)

하나의 IP/포트(보통 :443)에서 여러 도메인의 TLS(HTTPS) 사이트를 호스팅할 수 있게 클라이언트가 TLS 연결 초기에 접속하려는 호스트명(도메인)을 서버에 알려주는 확장

즉, 같은 IP에 siteA.com과 siteB.com이 있어도 각각 다른 인증서를 쓸 수 있게 해준다

클라이언트가 대상 서버의 호스트 이름을 지정하도록 해야한다

  • 최초 SSL Handshake 단계에 이루어진다
  • 클라이언트가 '이 웹 사이트에 연결하고 싶다'라고 접속할 웹 사이트를 알려줌으로써 서버는 어떤 인증서를 로드해야 하는지 알 수 있음
  • 모든 클라이언트가 지원하지 않는다

ALB & NLB, CloudFront에서만 지원
로드밸런서에 여러 SSL 인증서가 표시되면 ALB나 NLB 떠올리기!

ALB & NLB vs CLB

ALB & NLB

  • 여러 개의 SSL인증서 통해 웹 서비스를 여러 개 둘 수 있다
  • SNI를 지원하기 때문에 가능

CLB

  • 하나의 인증서만 지원
  • 만약 여러 호스트를 지원하려면 그에 맞는 클래식 로드밸런서 갯수가 필요함

SSL 실습

profile
숲(구조)을 보는 개발자

0개의 댓글