[Project] SSL 적용하기 1 - 인증서 발급

현주·2024년 5월 11일

웹사이트를 구축할 때 보안은 선택이 아닌 필수이다.

사용자 정보 보호, 데이터 무결성 유지, 그리고 검색 엔진 최적화(SEO) 등의 측면에서 보안을 적용한 HTTPS는 웹사이트에 반드시 필요하다.

✔️ HTTP vs HTTPS

  • HTTP ( HyperText Transfer Protocol )
    • 데이터 전송 시 암호화되지 않아 정보가 쉽게 노출될 수 있음
    • 해커의 공격에 취약하며, 사용자 신뢰를 저하시킬 수 있음
      ⠀ ⠀
  • HTTPS ( HTTP Secure )
    • SSL/TLS 프로토콜을 사용하여 데이터 전송을 암호화함
    • 중간에서 데이터가 가로채이지 않도록 보호하며, 사용자와 웹사이트 간의 안전한 연결 보장

HTTP에 Secure을 적용하기 위해서는 SSL 인증서를 발급받아 적용하여야 한다.

✔️ SSL 인증서

  • 웹사이트와 사용자 간의 데이터를 안전하게 암호화하여 정보 보호와 신뢰성을 제공하는 보안 인증서

이를 위해서는 신뢰할 수 있는 인증 기관에서 도메인 검증 후 인증서를 발급받아야 하는데,

발급 기관은 다양하지만, 특히 무료로 제공하는 기관은 아래 두 가지가 있다.

✔️ Let's Encrypt

  • 가장 널리 알려진 무료 인증 기관
  • 도메인이 있어야 인증서 발급 가능
  • 간편한 설치와 자동 갱신 기능 제공

✔️ ZeroSSL

  • 사용자 친화적인 인터페이스를 제공하며, 간단한 절차로 인증서를 발급받을 수 있음
  • 도메인 없이 IP만으로 인증서 발급 가능
  • 인증서의 유효 기간이 90일임 ( 수동 갱신 필요 )

개인적으로 나는 Let's Encrypt보다 더 직관적인 ZeroSSL을 선택하였다.

그리고 인증서를 발급받기 전에 나의 경우에는 AWS EC2로 서버를 돌리고 있기 때문에
보안그룹에서 SSL 인증서 발급을 위해 사용할 80 포트와, 프록시로 사용할 443 포트를 개방해주었다.


✏️ 인증서 발급받기

  1. ZeroSSL 회원가입과 로그인 후, New Certificate으로 새 인증서를 만들자.
  1. 내 프로젝트의 도메인 입력

  2. 무료 인증서인 90일을 선택

  3. Auto-Generate CSR 선택

  4. 무료 플랜 선택

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

  1. 도메인 검증 방법 선택

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

위 사진에 나오는 NamePoint To를 내 도메인 설정에서 수정해 인증해야한다.

나는 내도메인 한국에서 도메인을 발급받았기 때문에 거기로 로그인하여 내 도메인에 들어간다.

그리고 CNAME부분을 ZeroSSL에서 인증하라는 대로 적는다.

내 도메인 앞에는 Name부분을, 그 뒤에는 Point To부분을 적으면 된다.

다 진행했다면 verify Domain을 클릭해주고,

아래와 같이 문제 없다고 뜬다면 성공이다!

이제는 발급받은 인증서를 다운받아 내 프로젝트에 적용하기만 하면 된다.

그리고 아래와 같은 유의점이 있으니 잘 확인해야한다.

  • 90일마다 ZeroSSL에서 인증서를 갱신해야함
  • 서버 IP가 바뀌면 안됨
  • AWS EC2 서버는 중지시키면 IP를 회수하므로 서버를 중지시키면 안됨

나머지는 다음 포스팅에서 진행할 예정이다!

📌 SSL 인증서 프로젝트에 적용 방법은 아래 포스팅을 참고해주세요.

0개의 댓글