본문 바로가기
카테고리 없음

SSL 인증서는 어떻게 발급받을까 (Let’s Encrypt 완벽 정리)

by by_merry 2026. 4. 28.

HTTPS, SSL/TLS, 인증서까지 개념을 이해했다면 이제 마지막 단계가 남는다. 바로 실제로 인증서를 발급받고 서버에 적용하는 과정이다.

많은 사람들이 여기서 막힌다. “이론은 알겠는데, 실제로 어떻게 하는 건데?”라는 부분 때문이다. 하지만 생각보다 어렵지 않다.

결론부터 말하면, Let’s Encrypt와 Certbot을 사용하면 누구나 무료로 SSL 인증서를 발급받고 HTTPS를 적용할 수 있다.

 

SSL 인증서를 발급받기 전에 알아야 할 것

먼저 중요한 사실 하나가 있다. SSL 인증서는 IP 주소가 아니라 도메인에 발급된다는 점이다.

예를 들어:

  • example.com → 가능
  • 123.45.67.89 → 대부분 불가능

이유는 인증서가 “이 도메인이 이 서버의 것인지”를 검증하는 방식이기 때문이다. 따라서 인증서를 발급받기 위해서는 반드시 도메인이 필요하다.

즉, 전체 구조는 이렇게 된다.

도메인 → 서버(IP 연결) → 인증서 발급 → HTTPS 적용

Let’s Encrypt란 무엇일까

Let’s Encrypt는 무료로 SSL 인증서를 발급해주는 인증 기관(CA)이다.

과거에는 SSL 인증서를 발급받기 위해 비용을 지불해야 했지만, Let’s Encrypt가 등장하면서 누구나 무료로 HTTPS를 사용할 수 있게 되었다.

Let’s Encrypt의 특징은 다음과 같다.

  • 완전 무료
  • 자동 발급
  • 자동 갱신 지원
  • 전 세계적으로 신뢰됨

이 덕분에 개인 프로젝트부터 대형 서비스까지 모두 HTTPS를 기본으로 사용할 수 있게 되었다.

Certbot은 무엇일까

Certbot은 Let’s Encrypt 인증서를 쉽게 발급받고 서버에 적용할 수 있도록 도와주는 도구다.

원래 인증서 발급 과정은 복잡하다. 도메인 소유 확인, 인증서 생성, 서버 설정 등을 모두 수동으로 해야 한다.

하지만 Certbot을 사용하면 이 과정을 거의 자동으로 처리할 수 있다.

즉, Certbot은 다음 역할을 한다.

  • 도메인 검증
  • 인증서 발급
  • 웹서버 설정 (Nginx/Apache)
  • 자동 갱신 설정

SSL 인증서 발급 과정 전체 흐름

인증서 발급 과정은 크게 4단계로 정리할 수 있다.

1. 도메인 준비 → 2. Certbot 실행 → 3. 인증서 발급 → 4. HTTPS 적용

이 흐름만 이해하면 전체 구조는 끝이다.

1. 도메인과 서버 연결

먼저 도메인을 서버 IP에 연결해야 한다.

DNS 설정에서:

  • A 레코드 → 내 서버 IP 입력

이렇게 설정하면 도메인을 통해 서버에 접근할 수 있다.

이 단계가 제대로 되어야 인증서 발급이 가능하다.

2. Certbot 설치

서버에 Certbot을 설치한다. (Ubuntu 기준)

sudo apt update
sudo apt install certbot python3-certbot-nginx

웹서버가 Apache라면 nginx 대신 apache 버전을 설치하면 된다.

3. 인증서 발급

이제 가장 중요한 단계다.

sudo certbot --nginx

이 명령어를 실행하면 다음 과정이 자동으로 진행된다.

  • 도메인 소유 확인 (HTTP 요청 기반)
  • 인증서 발급
  • Nginx 설정 수정 (HTTPS 적용)

즉, 명령어 한 줄로 HTTPS까지 적용된다.

4. 자동 갱신 설정

Let’s Encrypt 인증서는 90일 동안만 유효하다.

하지만 Certbot이 자동으로 갱신하도록 설정해준다.

확인 명령어:

sudo certbot renew --dry-run

이걸 실행해서 오류가 없다면 자동 갱신이 정상적으로 작동한다.

인증서 발급이 안 되는 이유

많은 사람들이 여기서 막힌다. 대표적인 이유는 다음과 같다.

  • 도메인이 서버 IP에 연결되지 않음
  • 80번 포트가 열려 있지 않음
  • 포트포워딩 설정이 안 되어 있음
  • 방화벽에서 차단됨

특히 Let’s Encrypt는 인증 과정에서 80번 포트를 사용하기 때문에 반드시 열려 있어야 한다.

Docker 환경에서는 어떻게 할까

Docker를 사용하는 경우에도 원리는 동일하다.

다만 방식이 조금 다르다.

  • Certbot 컨테이너 사용
  • Nginx + Certbot 컨테이너 구성

즉, 구조는 같고 실행 환경만 다르다.

한 줄로 정리하면

SSL 인증서는 Let’s Encrypt와 Certbot을 사용하면 무료로 쉽게 발급받을 수 있으며, 도메인 연결과 포트 설정만 제대로 되어 있다면 누구나 HTTPS를 적용할 수 있다.