이 글은 오라클 무료 서버로 나만의 서버를 만드는 과정 중, 방문자가 안전하게 드나들도록 ‘보안 자물쇠(HTTPS)’를 채우는 단계에 대한 기록입니다.
이름은 달았는데, 자물쇠가 없었다
지난 글에서 서버에 도메인이라는 이름표를 달았다. 이제 방문자가 그 이름으로 찾아올 수 있게 됐다. 그런데 한 가지가 더 남아 있었다. 바로 주소창 앞에 뜨는 그 작은 자물쇠, HTTPS다.
자물쇠가 없으면 브라우저가 “이 사이트는 안전하지 않습니다”라는 경고를 띄우기도 한다. 방문자 입장에선 덜컥 겁이 나는 문구다. 그래서 블로그를 제대로 열려면 이 자물쇠를 꼭 채워야 했다. 오늘은 그 이야기다.
자물쇠가 있고 없고의 차이
먼저 HTTP와 HTTPS가 뭐가 다른지부터 보자.
📌 HTTP / HTTPS HTTP는 방문자와 서버가 주고받는 정보를 그대로(평문으로) 전달하는 방식이다. HTTPS는 여기에 암호 자물쇠를 채워서, 오가는 정보를 아무나 엿볼 수 없게 만든 방식이다. 주소창의 자물쇠 표시와 ‘https’로 시작하는 주소가 바로 이 자물쇠가 채워졌다는 뜻이다.
그림으로 보면 차이가 분명하다.

위쪽 HTTP에서는 방문자가 보낸 정보(“비밀번호는 1234”)가 그대로 오가기 때문에, 중간에서 누군가 엿보면 내용이 훤히 읽힌다. 반면 아래쪽 HTTPS에서는 그 정보가 암호로 잠긴 채(“x8#@k9?z…”) 오가서, 중간에 누가 가로채도 무슨 내용인지 읽을 수 없다.
📌 암호화 정보를 아무나 못 읽는 형태로 바꾸는 것을 말한다. 열쇠를 가진 상대(서버)만 원래 내용으로 되돌려 읽을 수 있다. 편지를 봉투에 넣어 밀봉하는 것과 비슷하다.
왜 자물쇠가 중요한가
이 자물쇠는 단순히 있으면 좋은 정도가 아니라 이제는 필수에 가깝다. 이유가 몇 가지 있다. 방문자가 남기는 정보가 중간에 새지 않게 보호해주고, “안전하지 않음” 경고를 없애 방문자에게 신뢰를 준다. 게다가 구글은 자물쇠가 채워진 사이트를 검색에서 더 우대한다. 즉 보안, 신뢰, 검색 노출 모두에 도움이 되는 것이다.
예전에는 이게 꽤 번거로운 일이었다
문제는, 이 자물쇠를 채우는 게 원래 만만치 않은 작업이었다는 점이다. 자물쇠를 채우려면 ‘인증서’라는 게 필요하다.
📌 SSL 인증서 “이 사이트는 진짜이며 안전하게 암호화되어 있다”고 보증해주는 일종의 증명서다. 이게 있어야 브라우저가 자물쇠를 표시하고 안전하다고 인정한다.
예전에는 이 인증서를 받으려면 여러 단계를 거쳐야 했다. 인증서를 발급받고(때로는 돈을 내고), 서버에 손으로 설치하고, 게다가 인증서에는 유효기간이 있어서 만료되기 전에 잊지 않고 직접 갱신까지 해야 했다. 깜빡하고 갱신을 놓치면 어느 날 갑자기 사이트에 “안전하지 않음” 경고가 뜨는 낭패를 겪기도 한다.
그런데 지금은 이 모든 게 훨씬 쉬워졌다. 두 가지 덕분이다. 하나는 Let’s Encrypt라는 곳에서 인증서를 무료로 발급해주게 된 것이고, 다른 하나는 그 발급과 갱신을 자동으로 해주는 도구가 나온 것이다.
📌 Let’s Encrypt(렛츠 인크립트) 누구나 무료로 SSL 인증서를 발급받을 수 있게 해주는 비영리 기관이다. 덕분에 돈 한 푼 없이도 사이트에 자물쇠를 채울 수 있게 됐다.
Caddy — 자물쇠를 알아서 채워주는 도구
내가 쓴 도구는 Caddy다. 이 녀석의 마법 같은 점은, 도메인 주소만 알려주면 인증서 발급부터 설치, 갱신까지 전부 알아서 해준다는 것이다.
📌 Caddy(캐디) 웹 서버 프로그램의 하나로, HTTPS 자물쇠를 자동으로 채워주는 것이 가장 큰 특징이다. Let’s Encrypt에서 인증서를 알아서 받아 걸고, 만료되기 전에 스스로 갱신까지 해준다.
예전 방식과 Caddy 자동 방식을 비교하면 이렇게나 차이가 난다.
| 구분 | 예전 방식 | Caddy 자동 방식 |
|---|---|---|
| 인증서 받기 | 직접 신청 (때로는 유료) | 자동 발급 (무료) |
| 서버에 설치 | 손으로 설정 | 자동 |
| 만료 전 갱신 | 잊지 않고 직접 갱신 | 자동 갱신 |
| 내가 할 일 | 여러 복잡한 단계 | 도메인 주소 한 줄 적기 |
실제로 해보니 — 정말 한 줄이었다
솔직히 반신반의했다. 그런데 진짜였다. 설정 파일에 내 도메인 주소를 딱 한 줄 적고 실행했더니, Caddy가 알아서 Let’s Encrypt에 인증서를 신청하고, 받아서 걸고, 자물쇠를 채웠다. 실행 기록을 보니 “인증서를 성공적으로 받았다”는 메시지가 찍혀 있었고, 브라우저로 들어가 보니 주소창에 자물쇠가 떡하니 붙어 있었다.
예전 같으면 며칠은 씨름했을 일이, 한 줄과 몇 초 만에 끝난 것이다. 게다가 이 인증서는 만료될 때가 되면 Caddy가 알아서 갱신해주니, 나는 앞으로 이 자물쇠에 대해 신경 쓸 일이 거의 없다. 기술이 이렇게 편해졌다는 게 새삼 고마웠다.
정리하며
HTTPS는 방문자와 서버 사이의 정보를 암호로 잠가주는 보안 자물쇠이고, 이제는 사실상 필수다. 예전엔 인증서를 받고 설치하고 갱신하느라 번거로웠지만, 지금은 Let’s Encrypt의 무료 인증서와 Caddy 같은 도구 덕분에 도메인 한 줄이면 자동으로 채워진다.
이렇게 서버를 빌리고, 문을 열고, 이름표를 달고, 자물쇠까지 채웠다. 블로그가 세상에 안전하게 열리기까지의 큰 고비는 다 넘은 셈이다. 이제 남은 건 이 서버를 어떻게 계속 관리하고, 그 위에서 무엇을 돌릴지 하는 이야기인데, 그건 지금도 내가 하나씩 익혀가는 중이라 손에 더 붙으면 정리해보고 싶다.
※ 이 글은 개인의 학습·구축 경험을 공유하기 위한 기록입니다. 사용한 도구와 서비스의 방식은 변경될 수 있으니, 실제 이용 시에는 각 도구의 최신 안내를 확인하시기 바랍니다.