웹사이트를 구축할 때 보안은 선택이 아닌 필수이다.
사용자 정보 보호, 데이터 무결성 유지, 그리고 검색 엔진 최적화(SEO) 등의 측면에서 보안을 적용한 HTTPS는 웹사이트에 반드시 필요하다.
✔️ HTTP vs HTTPS
- HTTP ( HyperText Transfer Protocol )
- 데이터 전송 시 암호화되지 않아 정보가 쉽게 노출될 수 있음
- 해커의 공격에 취약하며, 사용자 신뢰를 저하시킬 수 있음
⠀ ⠀- HTTPS ( HTTP Secure )
- SSL/TLS 프로토콜을 사용하여 데이터 전송을 암호화함
- 중간에서 데이터가 가로채이지 않도록 보호하며, 사용자와 웹사이트 간의 안전한 연결 보장
HTTP에 Secure을 적용하기 위해서는 SSL 인증서를 발급받아 적용하여야 한다.
✔️ SSL 인증서
- 웹사이트와 사용자 간의 데이터를 안전하게 암호화하여 정보 보호와 신뢰성을 제공하는 보안 인증서
이를 위해서는 신뢰할 수 있는 인증 기관에서 도메인 검증 후 인증서를 발급받아야 하는데,
발급 기관은 다양하지만, 특히 무료로 제공하는 기관은 아래 두 가지가 있다.
개인적으로 나는 Let's Encrypt보다 더 직관적인 ZeroSSL을 선택하였다.
그리고 인증서를 발급받기 전에 나의 경우에는 AWS EC2로 서버를 돌리고 있기 때문에
보안그룹에서 SSL 인증서 발급을 위해 사용할 80 포트와, 프록시로 사용할 443 포트를 개방해주었다.
New Certificate으로 새 인증서를 만들자.
내 프로젝트의 도메인 입력

무료 인증서인 90일을 선택

Auto-Generate CSR 선택

무료 플랜 선택

여기까지 하면 아래와 같이 내 certificate이 만들어졌고 이제 내 도메인 검증을 할 차례라고 나온다.

나는 DNS(CNAME)로 인증하기로 하였다.

위 사진에 나오는 Name과 Point To를 내 도메인 설정에서 수정해 인증해야한다.
나는 내도메인 한국에서 도메인을 발급받았기 때문에 거기로 로그인하여 내 도메인에 들어간다.

그리고 CNAME부분을 ZeroSSL에서 인증하라는 대로 적는다.
내 도메인 앞에는 Name부분을, 그 뒤에는 Point To부분을 적으면 된다.

다 진행했다면 verify Domain을 클릭해주고,
아래와 같이 문제 없다고 뜬다면 성공이다!

이제는 발급받은 인증서를 다운받아 내 프로젝트에 적용하기만 하면 된다.
그리고 아래와 같은 유의점이 있으니 잘 확인해야한다.
나머지는 다음 포스팅에서 진행할 예정이다!
📌 SSL 인증서 프로젝트에 적용 방법은 아래 포스팅을 참고해주세요.