🧐 HTTP와 HTTPS의 차이점
HTTP (Hyper Text Transfer Proctocol) 와 HTTPS (Hyper Text Transfer Proctocol Secure)는 웹 통신에 사용되는 프로토콜이다. 이 둘의 큰 차이점은 보안과 데이터 암호화에 있다.
✔️ HTTP는 데이터를 암호화하지 않고 평문으로 전송한다. 따라서 민감한 정보(비밀번호, 개인정보 등)을 전송할 때 보안에 취약하다.
✔️ HTTPS는 보안을 강화하기 위해 SSL(보안 소켓 레이어) 또는 TSL(전송 계층 보안) 프로토콜을 사용하여 데이터를 암호화한다. 이를 통해 데이터의 기밀성과 무결성을 보장한다.
🔎 검색 엔진 최적화(SEO)에도 차이점이 있는데, HTTP는 HTTPS보다 검색 엔진에서 더 낮은 순위로 평가될 수 있다. 또한 Google과 같은 일부 검색 엔진은 HTTPS를 권장하고 검색 결과에 더 높은 가중치를 부여할 수 있다.
🔐 HTTPS를 설정하고 인증하는 방법
1. 도메인을 발급받고 DNS 서버에 도메인과 ip 연결
- AWS EC2를 사용하여 IPv4 퍼블릭 IP를 연결해주면 된다.
2. SSL/TSL 인증서 획득
- 인증서는 웹사이트의 신원을 확인하고 데이터 암호화에 사용된다.
- SSL 인증기관 Certificate Autority (CA)에서 구입할 수 있다. 무료 CA는 Let's Encrypt가 있는데, Let's Encrypt에 인증서를 발급받기 위해서는 Certbot을 설치해야 한다. Certbot은 Let's Encrypt 인증서를 자동으로 발급/갱신해주는 봇이다.
3. 웹 서버 설정
- 웹 서버(Apache, Nginx, IIS 등)에서 HTTPS를 사용하도록 설정해야 한다. 이를 위해 웹 서버의 설정 파일을 수정한다.
- SSL 인증서 및 개인 키 설정: SSL 인증서 파일(.crt 또는 .pem)과 개인 키 파일(.key)의 경로를 설정 파일에 지정한다. 웹 서버가 인증서와 키 파일의 위치를 알고 있어야 하므로 설정 파일에서 파일 경로를 설정하여 웹 서버가 이 파일을 로드할 수 있도록 한다.
- HTTPS 포트 지정: HTTPS는 일반적으로 443번 포트를 사용한다. 이를 설정 파일에 추가한다.
- 가상 호스트 또는 서버 블록 설정: 여러 도메인 또는 서브도메인을 호스팅하는 경우, 각 도메인에 SSL을 적용하려면 가상 호스트 또는 서버 블록 설정을 사용한다.
4. 서버 구성 수정
- 서버 구성 수정은 웹 서버를 조정하거나 변경하여 웹 사이트 또는 애플리케이션의 동작을 개선하거나 보안을 강화하는 프로세스를 의미한다.
- 웹 서버 설정 파일에서 HTTP 요청을 HTTPS로 리디렉션하도록 수정한다. 이렇게 하면 사용자가 HTTP로 접속했을 때 자동으로 HTTPS로 전환된다.
5. 인증서 설치 및 설정
- 획득한 인증서를 웹 서버에 설치 (저장)하고, 서버 소프트웨어가 이 파일을 찾을 수 있도록 경로를 설정한다.
6. 웹사이트 테스트
- 설정이 제대로 되었는지 확인하기 위해 웹사이트에 접속하고 주소 창에 "https://"가 표시되는지 확인한다.
- 브라우저에서 웹사이트를 로드할 때 녹색 자물쇠 아이콘이나 "안전함" 메시지가 표시되어야 한다.