
HTTP와 HTTPS는 웹 서버와 클라이언트 간의 데이터 전송을 위해 사용되는 프로토콜입니다.
보안
HTTPS는 HTTP의 안전한 버전입니다. HTTPS는 SSL(Secure Socket Layer) 또는 TLS(Transport Layer Security) 프로토콜을 사용하여 데이터를 암호화합니다. 이는 중간자 공격(Man-In-The-Middle, MITM)으로부터 데이터를 보호합니다.
포트 번호
HTTP는 기본적으로 포트 80을 사용하는 반면, HTTPS는 포트 443을 사용합니다.
성능
초기 연결 설정에서 HTTPS는 암호화 키를 교환하는 추가 단계로 인해 HTTP보다 약간 느릴 수 있습니다. 그러나 최신 웹 최적화 기술과 함께 사용할 경우, 이 차이는 눈에 띄지 않을 정도로 줄어듭니다.
URL 접두사
HTTP에서는 웹 주소가 http://로 시작하는 반면, HTTPS에서는 https://로 시작합니다.
HTTPS를 적용하려면 SSL/TLS 인증서를 설치해야 합니다.
인증서는 웹사이트의 신뢰성을 보증하고, 데이터 암호화를 가능하게 하는 디지털 문서입니다.
인증서 발급 받기
인증서는 공인된 인증 기관(Certificate Authority, CA)에서 발급받을 수 있습니다. Let's Encrypt는 무료 인증서를 제공하는 인기 있는 CA 중 하나입니다.
웹 서버 설정
인증서를 발급받은 후, 웹 서버에 설치해야 합니다. 서버의 종류(Nginx, Apache, IIS 등)에 따라 설치 과정이 다를 수 있습니다.
리다이렉트 설정
모든 HTTP 요청을 HTTPS로 리다이렉트하도록 웹 서버를 설정하여 보안을 강화할 수 있습니다.
HSTS 설정 (선택적)
HTTP Strict Transport Security(HSTS)를 설정하여 브라우저가 도메인과의 통신을 항상 HTTPS를 통해서만 수행하도록 할 수 있습니다.
웹 사이트 테스트
설정 후, SSL 서버 테스트 도구를 사용하여 웹 사이트의 HTTPS 구성을 테스트할 수 있습니다.
아래와같은 과정을 통해 HTTPS를 적용하면 웹 사이트의 보안이 강화되고, 사용자 데이터를 보호할 수 있다.
1️⃣ Certbot 설치
Let's Encrypt에서 제공하는 Certbot 도구를 사용하여 인증서를 쉽게 설치하고 관리할 수 있습니다.
sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot python-certbot-nginx
2️⃣ 인증서 발급 및 설치
다음 명령어를 실행하여 Nginx에 대한 인증서를 자동으로 발급받고 설치할 수 있습니다.
sudo certbot --nginx
Certbot은 도메인 이름을 묻고, 인증서를 발급받은 후 Nginx 설정을 자동으로 업데이트합니다.
3️⃣ 자동 갱신 설정
Let's Encrypt 인증서는 90일마다 갱신해야 합니다.
Certbot은 자동 갱신을 위한 크론 작업을 설정합니다.