HTTP/SSL/TLS

Park Bumsoo·2022년 5월 5일
0
  1. HTTP - HTTPS/SSL/TLS

  2. 3-WAY-Handshake

  3. SSR

HTTP - HTTPS/SSL/TLS

HTTP(포트번호: 80) - http:// <도메인> : 80 으로 접속가능(80은 생략이 가능하다.)
HTTPS(포트번호: 443) - https:// <도메인> : 443 으로 접속가능(443은 생략이 가능하다.)

root dns

".com", ".net", ".shop", "co.kr"..... 등등
각종 도메인을 관리해주는 서버
http://www.ktword.co.kr/test/view/view.php?m_temp1=2642
https://ko.wikipedia.org/wiki/%EB%A3%A8%ED%8A%B8_%EB%84%A4%EC%9E%84_%EC%84%9C%EB%B2%84

DevOps
예전엔 네트워크를 관리하는 관리자 들이 많았지만 현 트렌드에는 클라우드 서비스가 발달하면서 개발자들이 네트워크 관리를 함께 하기 때문에 DevOps(개발 + 네트워크 관리)라고 불리고 있다.

HTTPS

HTTPS를 이용하려면 secure 기능을 추가하려면 보안 서버 인증서가 필요하며 인증서는 무료인증서와 유료인증서 두 가지 종류가 있다.

하지만 LB(Load Balencer)를 사용할 경우 AWS, GCP등 플렛폼에서
도메인 주소만 있다면 (부하분산-프론트엔드 부분에서) 무료로 인증서가 간단하게 발급이 가능하다.
이런 인증서를 SSL이라 불렀으며, 현재는 TLS라고 부르고있다.

http와 https를 나누는 이유

-------------------------------------------------------------------------------
패킷확인하기
wireshark를 사용해서 패킷을 캡쳐링 할 수 있다. 주로 ip/protocol 등등을 확인할 수 있다
https://wireshark.kr.uptodown.com/windows
이곳에서 Source(src) = 출발지(ip주소)를 뜻하며, Destination(dst)는 도착지(ip주소)를 뜻한다.
-------------------------------------------------------------------------------

http와 https를 나누는 큰 이유는 패킷의 암호화 차이이다.

secure는 패킷을 암호화시켜 보다 보안을 강하게 만들어주며,
이는 해킹을 막는데 추가적인 보안 역확을 맡아준다.

또한 패킷을 서로 주고 받으려면 패킷을 전달하려는 클라이언트<->서버 컴퓨터끼리 연결을 해야하는데
이 과정을 3-WAY-Handshake 라고하며.

연결을 끊는 과정은 4-WAY-Handshake 라고한다.

3-WAY-Handshake

  • TCP 통신을 이용하여 데이터를 전송하기 위해 네트워크 연결을 설정(Connection Establish) 하는 과정
  • 양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장하고, 실제로 데이터 전달이 시작하기 전에 한 쪽이 다른 쪽이 준비되었다는 것을 알 수 있도록 한다.
  • 즉, TCP/IP 프로토콜을 이용해서 통신을 하는 응용 프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미한다.

4-WAY-Handshake

4-Way Handshake은 연결을 해제 (Connecntion Termination)하는 과정이다. 여기서는 FIN 플래그를 이용한다.

SSR build

SSR은 기존의 SSG와 다른 방식으로 서버를 실행시키게 된다.
기존 컴퓨터가 아닌 AWS,GCP 등 플랫폼을 통해 빌린 VPC를 통해 서버(인스턴스)를 실행시키게 된다.

VPC (ubunto 20.04) 기준

node, yarn설치

sudo apt install nodejs

(node.js 14를 기준)
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -E -

sudo apt install -y nodejs

node -v

sudo npm install -g yarn

yarn build

yarn start

--까지하면 접속이 안된다.--

방화벽 설정

VPC네트워크에 들어가 방화벽 스티커를 만든다.

태그와 이름은 같게 해주면 편하며, 소스는 전체공개라면 0.0.0.0/0

스티커 생성후 VM인스턴스로 간 후 수정하기 => 네트워크 태그에 스티커 입력

--까지 완료하면 접속이 가능하다.--

profile
프론트엔드 주니어 개발자(React, Next.js)

0개의 댓글