AWS 배포 -(5) HTTPS 적용하기

2024. 1. 17. 20:12
728x90

이전 글

더보기

 

5. HTTPS 적용하기

** HTTPS -> TLS (SSL) **

 

HTTPS : HTTP Secure

- TLS (Transport Layer Security)를 적용하여 HTTP 요청과 응답을 암호화한 규약.

  • TLS/SSL : 서버로 들어오는 요청을 요청을 한 사용자와 요청을 받는 서버 외에는 확인하기 힘들도록 데이터를 암호화하는 규칙

- HTTPS를 구현하지 않으면 > 주고받는 HTTP 요청이 모두 노출될 위험이 있다.

- 대칭키 암호화비대칭키 암호화 방식을 동시에 사용하여 안정성과 속도 확보!

 

1) 대칭키 암호화 : 같은 키를 사용하여 암호화.

  • 암호화&복호화 빠름
  • 자원 소모가 적음
  • 암호문 공유하는 주체끼리 동일한 키를 갖고 있어야 함

2) 비대칭키 암호화 : 서로 다른 키를 사용하여 암호화

  • 개인 키를 공개하지 않아 보안이 뛰어남
  • 하드웨어 자원 소모가 큼
  • 암호화&복호화 시간이 오래걸림

 

원리 

더보기

핵 심  : 대칭키 암호화를 하기 위해 공유되어야 하는 비밀키비대칭키 암호화를 통해 공유한다 !! 

 

1) C -> S 클라이언트는 서버에 최초로 요청을 보낼 때 > 안전한 연결을 요청한다. + 자신이 사용가능한 암호화 방식들을 서버에 보내준다.

2) S -> C 서버는 클라이언트가 전달해준 방식들 중 자신이 사용가능한 암호화 방식을 선택 > 그 정보를 인증서와 함께 전달한다.

3) C  클라이언트는 서버가 전송한 인증서(서버의 신분 증명+서버의 공개키)를 확인한다.

4) C -> S 클라이언트가 서버의 공개키를 사용해 임의의 값을 암호화하여 서버로 전달한다. 

>> 이 암호화 시 > 서버만 알고있는 개인키를 사용해야만 그 값을 확인할 수 있다!!

5) S 전달받은 암호문을 자신의 개인키로 복호화 & 클라이언트가 생성한 임의의 값(대칭키 암호화 키로 활용)을 확인한다.

6) S -> C 서버가 클라이언트에게 대칭키로 암호화된 응답을 보내면 클라이언트가 같은 대칭키로 복호화 진행.

7) C -> S 클라이언트가 서버에 요청 보낼 때 대칭키로 요청을 보낸다. 

 

==> 이렇게 하면 중간에 통신을 가로챈다 한들 내용 자체의 확인은 거의 불가능해진다. 

 

** Certbot (무료 SSL 인증서) **

https://certbot.eff.org/ 

 

Certbot

Tagline

certbot.eff.org

Certbot 사이트에서 어떤 환경에서 어떤 서버를 실행하고 있는지 입력하면 명령어 사용 방법이 나온다! 

(snap이라는 다른 소프트웨어 관리 도구를 이용해 설치한다.)

 

1) snap 최신화 & 설치

sudo snap install core; sudo snap refresh core
sudo snap install --classic certbot // install certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot // prepare the certbot command

 

2) --nginx 옵션과 함께 실행

sudo certbot --nginx  // Choose how you'd like to run Certbot

- 이메일 입력하기

- 이용약관/ 정기적 수신 동의 /TLS를 적용할 도메인 선택.

- 인증서를 받아와서 적용하는 과정

 

3) HTTPS 포트도 보안 규칙에 포함시키기.

 

4) 적용되었는지 브라우저로 접속해 확인~~

이 연결은 안전합니다! 아주 뿌듯하네용..

 

 

기나긴 배포 과정 완료...

당연 다시 하라면 다 까먹고 못하겠지...? ㅎㅎ

그래도 한번씩 한번씩 하다보면 더더 익숙해지겠지요. ^.^ 

728x90

BELATED ARTICLES

more