웹 개발을 하다보면 URL 앞에 항상 붙는 http://, https://를 보게 된다.
겉보기에는 단순히s 하나 차이지만, 어떤 차이점이 있길래 https를 주로 쓰는걸까?
HTTP(HyperText Transfer Protocol)는 클라이언트(브라우저)와 서버가 데이터를 주고 받기 위한 규칙(프로토콜)이다.
HTTP는 데이터를 ✌️암호화하지 않고✌️ 평문 그대로 전송하기 때문에 네트워크 중간에서 데이터가 그대로 노출될 수 있다. 그 때문에 로그인 정보, 개인정보가 탈취될 위험이 존재한다.
공용 와이파이 환경에서 HTTP 사이트에 로그인하면 아이디와 비밀번호가 그대로 노출💦 될 수 있음
그래서 HTTP는 보안에 취약하다.
HTTPS의 s는 secure로, HTTP에 보안 계층(SSL/TLS) 을 추가한 프로토콜이다.
HTTPS는 데이터가 암호화되어 전송되고, 그로 인해 중간에서 가로채도 내용을 해독할 수 없다는 특징이 있다. 또한 SSL/TLS 인증서와 CA를 통해 서버의 신뢰성 검증이 가능하다는 장점이 있다.
닉값하는 프로토콜
SSL/TLS 인증서는 쉽게 말해 "이 서버는 신뢰할 수 있는 서버" 라는 것을 증명하는 전자 신분증 같은 거라고 볼 수 있다.
🔐 SSL
- SSL (Secure Sockets Layer)
→ 보안 소켓 계층- 클라이언트와 서버 사이의 통신을 암호화하기 위해 만들어진 보안 프로토콜
- HTTPS의 초기 보안 기술
- 현재는 보안 취약점 때문에 더 이상 사용되지 않음
🔐 TLS
- TLS (Transport Layer Security)
→ 전송 계층 보안- SSL을 개선한 최신 보안 프로토콜
- 현재 HTTPS에서 실제로 사용되는 표준
- 더 강력한 암호화 방식과 보안 구조 제공
HTTPS 통신에서 이 인증서를 통해 서버의 신원 인증, 데이터의 암호화, 데이터의 무결설 보장 이 세 가지가 가능해진다.
만약 인증서가 없다면 어떻게 될까?
-> 사용자는 접속한 서버가 진짜인지 알 수 없다.
예를 들어, 브라우저에서 https://www.naver.com에 접속하면, 네이버 서버는 SSL/TLS 인증서를 브라우저에 보내준다.
이 인증서에는 “이 서버는 www.naver.com의 서버다”라는 정보와 이를 신뢰할 수 있는 인증기관(CA)이 확인했다는 서명이 들어 있다.
브라우저는 이 인증서를 검증한 뒤에야 통신을 시작한다. 그래서 사용자는 진짜 네이버 서버와 통신 중이라는 것을 보장받을 수 있다❕
인증서를 발급하고 관리하는 신뢰 기관으로,
그래서 CA가 서명한 인증서라면 브라우저는 자동으로 서버를 신뢰하게 된다!
앞서 말했다시피 HTTPS는 SSL/TLS라는 보안 프로토콜을 사용하는데,
SSL란 초기 암호화 프로토콜로 설명할 수 있다. 현재는 거의 사용하지 않는 프로토콜이다.
TLS는 SSL을 개선한 ⌜최신 표준 보안 프로토콜⌟로, 실제로 우리가 쓰는 HTTPS는 TLS기반이다!
브라우저가 서버에 접속 -> 서버가 SSL/TLS 인증서 전달 -> 브라우저가 인증서 신뢰 여부 확인 -> 암호화된 통신 시작 🔐
지피티가 말아주는

결론적으로, HTTP보다는 보안 + 사용자 신뢰 + 브라우저 정책까지 모두 고려하는 HTTPS를 사용하는 것이 좋다!
마무리.ㅋ

SSL/TLS 인증서는 조작 불가능한가여