본문 바로가기
IT

[리눅스 기초 #39] "주의 요함"은 이제 그만: Let's Encrypt와 Certbot으로 HTTPS 무료 적용하기

by sunyjiny 2026. 2. 9.
반응형

 

리눅스 기초 시리즈의 39번째 시간입니다! 지난 시간에는 Nginx 가상 호스트 설정을 통해 하나의 서버에 여러 도메인을 연결하는 법을 배웠습니다. 하지만 공들여 만든 사이트에 접속했을 때, 브라우저 주소창 왼쪽에 떠 있는 "주의 요함" 혹은 빨간색 경고 표시를 보면 맥이 빠지기 마련입니다.

2026년 현재, HTTPS는 선택이 아닌 필수입니다. 검색 엔진 최적화(SEO)는 물론이고, 사용자의 데이터를 보호하기 위한 최소한의 예의죠. 오늘은 유료 인증서를 살 필요 없이, Let's EncryptCertbot을 사용해 1분 만에 내 사이트에 '자물쇠' 마크를 다는 과정을 공유하겠습니다.


1. 나의 경험담: "자물쇠 하나가 바꾸는 신뢰의 가치"

 

처음 제 기술 블로그인 sunyjini.com을 배포했을 때의 일입니다. 지인들에게 사이트를 홍보했는데, 몇몇 친구들이 "야, 네 사이트 해킹당한 거 아니야? 위험하다고 뜨는데?"라고 묻더군요. 개발자로서 무척 자존심 상하는 순간이었습니다.

원인은 HTTP 프로토콜 사용으로 인한 보안 경고였습니다. 예전에는 SSL 인증서를 발급받으려면 매년 수십 달러를 지불하고 복잡한 서류 절차를 거쳐야 했지만, 이제는 Certbot이라는 훌륭한 도구가 있습니다. 명령어를 입력하고 주소창에 초록색 자물쇠(현재는 검은색/회색)가 생기는 것을 확인했을 때, 비로소 제 프로젝트가 세상에 나갈 준비를 마쳤다는 안도감이 들었습니다.


2. Before: 평문 데이터가 오가는 불안한 통로

HTTP 상태에서는 클라이언트와 서버가 주고받는 모든 데이터가 암호화되지 않은 '평문'으로 전송됩니다. 만약 사용자가 내 사이트에서 로그인을 시도한다면, 중간에 누군가 패킷을 가로채 비밀번호를 그대로 읽을 수 있는 위험한 상태죠.

현재 상태 확인 (포트 확인):

Terminal
 
# 현재 80번 포트(HTTP)만 열려 있는지 확인 sudo ufw status

443번(HTTPS) 포트가 닫혀 있다면 인증서 적용 후 열어줘야 합니다.

(▲ Before: 데이터가 투명하게 공개된 채 길을 걷고 있는 것과 같습니다. 이제 Certbot이라는 갑옷을 입혀보겠습니다.)


3. Action: Certbot으로 자동 인증서 발급받기

 

Let's Encrypt는 무료 인증 기관이며, Certbot은 이 기관으로부터 인증서를 자동으로 발급받고 Nginx 설정까지 마쳐주는 도구입니다.

인증서 적용 코드:

Bash Terminal
 
# 1. Certbot 및 Nginx 플러그인 설치 sudo apt update sudo apt install certbot python3-certbot-nginx

2. 인증서 발급 및 자동 설정 실행
(이메일 입력과 약관 동의 절차가 진행됩니다)
sudo certbot --nginx -d sunyjini.com -d www.sunyjini.com

3. 방화벽에서 HTTPS(443) 포트 허용
sudo ufw allow 'Nginx Full' sudo ufw delete allow 'Nginx HTTP' 

(▲ Action: 명령어를 실행하면 Certbot이 내 도메인의 소유권을 확인하고 인증서를 내려받아 Nginx의 server 블록을 자동으로 수정해 줍니다. 수동으로 설정 파일을 건드릴 필요가 거의 없습니다.)


4. After: 안전하고 신뢰받는 웹 서비스 완성

인증서 적용을 마치면 주소창에 영롱한 자물쇠 표시가 나타납니다. 이제 모든 데이터는 강력한 AES 암호화 알고리즘을 통해 보호됩니다.

달라진 점들:

  • 데이터 암호화: 아이디, 비밀번호 등 민감한 정보가 전송 중 노출될 위험이 사라졌습니다.
  • 사용자 신뢰도 향상: 브라우저 경고가 사라져 방문자들이 안심하고 사이트를 이용할 수 있습니다.
  • 자동 갱신: Let's Encrypt는 90일 만료지만, Certbot이 60일마다 알아서 갱신하므로 평생 무료로 유지됩니다.

5. 실험 요약 및 팁

구분 내용 비유
HTTPS 보안 기능이 추가된 통신 규약 비밀 편지 봉투
Let's Encrypt 무료 SSL 인증서 발급 기관 공인 인증 센터
Certbot 인증서 발급/관리 자동화 도구 심부름 잘하는 비서
Renewal certbot renew --dry-run 정기 점검 연습하기

6. 마치며: 보안은 이제 기본 상식입니다.

리눅스 기초 39단계를 거치며 우리는 이제 시스템의 기능뿐만 아니라 '신뢰'를 구축하는 법까지 배웠습니다. 유료 인증서를 사기 위해 지갑을 열 필요는 없습니다. Certbot이라는 강력한 도구가 24시간 내 사이트의 보안을 책임져 줄 테니까요.

오늘의 인사이트: "기술적인 완성도만큼 중요한 것은 사용자가 느끼는 안전함이다."


39번째 이야기를 마칩니다. 이제 우리 사이트는 전 세계 어디서든 안전하게 접속할 수 있습니다. 다음 시간에는 리눅스 서버 운영의 화룡점정, **'로그 순환(Logrotate)으로 서버 용량 부족 문제 원천 차단하기'**에 대해 다뤄보겠습니다.

이 글이 여러분의 사이트에 자물쇠를 다는 데 도움이 되었나요? 혹시 인증서 발급 중 "Challenge failed" 에러를 만나 해결이 안 되시나요?

DNS 설정이나 포트 개방 여부를 확인하는 자가 진단 체크리스트를 다음 포스팅 부록으로 준비해 드릴까요?

 

반응형