웹사이트 주소가 http가 아닌 https로 시작하는 것을 흔히 볼 수 있습니다. 이 's'는 Secure를 의미하며, SSL/TLS 프로토콜을 통해 브라우저와 서버 간 통신이 암호화되었다는 것을 나타냅니다.

왜 HTTPS가 필요한가

암호화되지 않은 HTTP 통신은 중간에서 누군가 데이터를 가로채 읽거나 조작할 수 있습니다. 로그인 정보, 결제 정보 같은 민감한 데이터를 다루는 사이트라면 HTTPS는 선택이 아닌 필수입니다. 또한 Google을 비롯한 검색 엔진은 HTTPS를 사용하지 않는 사이트의 검색 순위를 낮추는 정책을 가지고 있습니다.

SSL과 TLS의 차이

SSL(Secure Sockets Layer)은 TLS(Transport Layer Security)의 이전 버전으로, 현재는 보안 취약점 때문에 사용이 중단되었습니다. 지금 사용되는 것은 사실상 모두 TLS이지만, 관용적으로 여전히 'SSL 인증서'라는 표현이 널리 쓰입니다.

인증서 발급 방법

과거에는 SSL 인증서를 유료로 구매해야 했지만, 지금은 Let's Encrypt라는 비영리 기관이 무료로 인증서를 발급해줍니다. Certbot 도구를 사용하면 몇 분 안에 인증서를 발급받고 자동 갱신까지 설정할 수 있습니다.

sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d example.com -d www.example.com

인증서의 동작 원리 간단히 이해하기

TLS는 공개키 암호화 방식을 사용합니다. 서버는 공개키가 담긴 인증서를 브라우저에 전달하고, 브라우저는 이를 통해 서버의 신원을 확인한 뒤 암호화된 세션 키를 교환합니다. 이후 통신은 이 세션 키로 암호화되어 제3자가 내용을 알아볼 수 없게 됩니다.

Cloudflare를 활용한 손쉬운 HTTPS 적용

Cloudflare 같은 서비스를 사용하면 별도의 인증서 관리 없이도 자동으로 HTTPS를 적용할 수 있습니다. 도메인의 네임서버를 Cloudflare로 옮기기만 하면 무료로 SSL 인증서가 발급되고 자동으로 갱신됩니다.