본문 바로가기

AWS

[AWS] 운영 서버 환경 구성 - 외부 환경 ( 도메인, HTTPS, SSL/TLS )

AWS Route 53을 이용해 도메인을 등록할 수 있다 👏

간단한 도메인 작동 원리

1. 클라이언트가 웹 주소창에 xxx.xxx.com을 입력하고 엔터를 친다.

2. DNS 서버에 도메인의 실제 IP 주소를 알고 있는지 물어본다.

3. IP 주소를 알고 있는 DNS 서버는 클라이언트에게 IP 주소를 알려준다.

4. 클라이언트는 IP 주소로 페이지 조회 요청을 한다.

 

도메인 등록

도메인 네임 등록 대행자에 돈을 내고 사용 가능한 도메인을 구매하고, 원하는 IP 주소를 도메인에 연결해달라고 요청

=> 대행자가 DNS 서버들에 도메인과 IP 주소를 등록해준다. 

 

GoDaddy 같은 유명한 업체들을 통해 등록할 수도 있고, AWS에서는 Route 53이라는 서비스를 통해 도메인을 등록할 수 있다!

 

로드 밸런서에 도메인을 등록하면,  로드 밸런서에서 관리하고 있는 서버들에 접속할 수 있게 된다.


AWS Certificate Manager를 통해 SSL/TLS 인증서를 등록할 수 있다 😃

HTTPS (HTTP Secure)

HTTP 프로토콜에 SSL/TLS 암호화 프로토콜을 이용해 전송되는 데이터를 암호화하는 과정을 추가한 것으로 HTTP 프로토콜의 보안이 강화된 버전으로 생각하면 된다.

 

HTTPS의 특징

1. 기밀성: 중간에 내용을 가로채더라도 내용을 읽지 못하게 암호화하는 것

2. 무결성: 내용을 변조해서 중간자 공격을 못 하게 하는 것

3. 인증: 클라이언트가 통신하고 있는 서버의 신원을 확인할 수 있는 것

 

=> HTTP를 이용해 통신하게 되면 사용자가 보는 데이터가 침입자에 의해 변조될 수도 있고, 신원이 노출되는 등 위험하기 때문에 모든 페이지에 HTTPS 프로토콜을 사용하는 것을 권장한다.

 

HTTPS의 작동 원리

- 발급받은 인증서를 서버 인스턴스의 웹 서버에 설치

- 클라이언트가 https://로 시작하는 주소로 접속을 시도

- 클라이언트는 서버에 SSL/TLS로 암호화한 통신을 하고 싶다고 요청

- 서버는 서버에 설치된 인증서를 함께 응답  => 인증서에 공개 암호화 키를 포함하고 있음

- 클라이언트는 신뢰할 수 있는 곳으로부터 서명된 것인지 확인하고, 대칭 암호화 키로 사용할 키를 생성해서 서버에서 받은 공개 암호화 키로 암호화해 전달한다.

- 서버와 클라이언트는 이 대칭 암호화 키를 이용해 암복호화가 잘 되는지 테스트를 진행한다.

- 이후로 서버와 클라이언트가 데이터를 주고받을 때 대칭 암호화 키를 이용해 암호화해서 전달한다.

 

SSL / TLS 인증서

얼마나 많은 인증 기관에서 신뢰하고 있는지, 몇 개의 도메인에 대해 사용 가능한지, 인증서를 발급하는 기관이 얼마나 저명한 곳인지 등에 따라 가격이 다양하다. ( Let's Encrypt 같은 곳에서 무료로 인증서를 발급받을 수 있다.)

 

AWS Route 53을 통해 관리하고 있는 도메인에 대해서 Certificate Manager를 통해 무료로 인증서 발급이 가능하다.

 

클라이언트와 직접 통신하는 것은 로드 밸런서 서버이므로, 로드 밸런서 서버에 인증서를 설치해야 한다.