SSL 인증서를 처음 이해할 때 알아야 할 것
웹사이트 주소 앞에 자물쇠 표시가 붙고 https://로 시작한다면 SSL/TLS 인증서가 사용되고 있다는 뜻입니다. 인증서는 방문자가 접속한 사이트가 진짜인지 확인하고, 주고받는 데이터를 암호화하는 역할을 합니다.
SSL 인증서란
쉽게 말하면 웹사이트의 디지털 신분증입니다.
브라우저는 인증서를 보고 다음을 확인합니다.
- 이 도메인이 실제로 해당 서버와 연결되어 있는가?
- 통신 내용을 암호화할 수 있는가?
- 인증서가 신뢰할 수 있는 기관에서 발급되었는가?
인증서가 없거나 문제가 있으면 브라우저는 보안 경고를 표시합니다.
Cloudflare를 쓰면 인증서가 두 구간으로 나뉜다
Cloudflare 같은 프록시/CDN을 사용하면 통신 구간이 둘로 나뉩니다.
[방문자 브라우저] → [Cloudflare] → [origin 서버]첫 번째 구간은 방문자와 Cloudflare 사이입니다. 브라우저가 확인하는 자물쇠는 이 구간의 인증서입니다. Cloudflare의 Universal SSL을 사용하면 보통 자동으로 발급됩니다.
두 번째 구간은 Cloudflare와 origin 서버 사이입니다. 이 구간은 Cloudflare 설정, origin 인증서, 터널 사용 여부에 따라 방식이 달라집니다.
Edge 인증서와 Origin 인증서
Edge 인증서
방문자와 Cloudflare 사이를 보호합니다. 사용자가 브라우저에서 직접 확인하는 인증서입니다.
Cloudflare를 사용하면 일반적으로 Edge 인증서는 자동 발급됩니다. 다만 도메인을 새로 연결한 직후에는 발급까지 시간이 걸릴 수 있습니다.
Origin 인증서
Cloudflare와 실제 서버 사이를 보호합니다. origin 서버에 직접 인증서를 설치하는 방식입니다.
Cloudflare Tunnel처럼 이미 암호화된 터널을 사용하는 구조에서는 origin 인증서 운영 방식이 달라질 수 있으므로, 현재 배포 구조에 맞춰 판단해야 합니다.
SSL/TLS 모드 이해하기
Cloudflare에는 SSL/TLS 모드가 있습니다.
- Flexible: Cloudflare와 origin 사이가 HTTP일 수 있어 권장하지 않습니다.
- Full: Cloudflare와 origin 사이도 HTTPS를 사용합니다.
- Full (Strict): origin 인증서의 신뢰성까지 검증합니다.
운영 서비스라면 가능하면 Full 또는 Full (Strict)를 목표로 두는 것이 좋습니다. 다만 터널, 프록시, 내부망 구조에 따라 실제 적용 방식은 달라질 수 있습니다.
새 도메인에서 SSL 오류가 날 때
도메인을 막 연결했다면 인증서 발급이 아직 끝나지 않았을 수 있습니다. 이때는 다음 순서로 확인합니다.
- Cloudflare의 Edge Certificates 상태 확인
- Universal SSL이 켜져 있는지 확인
- SSL/TLS 모드가 Off나 Flexible로 잘못 설정되어 있지 않은지 확인
- 터널 또는 origin 서버가 정상인지 확인
- 잠시 기다린 뒤 다시 접속
주의할 점
SSL 오류는 인증서만의 문제가 아닐 수 있습니다. DNS, 프록시 설정, 터널 상태, 브라우저 캐시, HSTS 정책도 함께 영향을 줍니다.
특히 HSTS가 적용된 도메인은 인증서 문제가 생겼을 때 HTTP로 우회할 수 없으므로 인증서 자동 갱신과 모니터링이 중요합니다.
듀오랩스가 보는 관점
HTTPS는 이제 선택 사항이 아니라 기본 조건입니다. 하지만 초기에 개념을 잘못 이해하면 Edge 인증서, origin 인증서, SSL/TLS 모드, 터널 구조가 뒤섞여 혼란스러워집니다. 웹사이트를 안정적으로 운영하려면 “어느 구간을 어떤 인증서가 보호하는지”부터 나눠서 보는 것이 좋습니다.
함께 읽기
- 새 서브도메인이 특정 브라우저에서만 안 열릴 때: DNS 캐시 점검법새 서브도메인을 추가한 직후 “Safari에서는 열리는데 Chrome에서는 안 열린다” 같은 일이 생길 수 있습니다. 이럴 때 바로 서버 장애나 DNS 설정 오류라고 판단하기 쉽지만, 실제 원인은 로컬 또는 브라우저 DNS 캐시인 경우가 많습니다.
- Cloudflare Tunnel 환경에서 실제 방문자 IP를 처리하는 방법Cloudflare Tunnel로 서비스를 노출하면 origin 서버가 보는 접속 IP가 실제 방문자 IP가 아닐 수 있습니다. 모든 요청이 터널 또는 프록시에서 온 것처럼 보이면 rate limit, 방문 통계, IP 차단 같은 기능이 부정확해집니다.
- HSTS 설정 전 알아야 할 옵션과 안전한 적용 순서HSTS(HTTP Strict Transport Security)는 브라우저에 “이 도메인은 항상 HTTPS로만 접속해야 한다”고 알려주는 보안 정책입니다. 잘 설정하면 중간자 공격과 SSL stripping을 줄일 수 있지만, 성급하게 적용하면 장애 복구가 어려워질 수 있습니다.
- Next.js + Postgres 프로젝트 호스팅 비용 비교: 관리형 플랫폼과 VPSNext.js와 PostgreSQL로 만든 웹 애플리케이션을 운영할 때 관리형 플랫폼과 VPS 중 어느 쪽이 더 저렴한지는 월 기본요금만으로 판단하기 어렵습니다. 관리형 플랫폼은 배포와 확장을 대신 처리하고, VPS는 낮은 인프라 비용 대신 서버 운영을 직접 맡아야 합니다.
- AWS 서비스 10개를 3개로 줄이면 무엇이 달라질까?Next.js로 웹 서비스를 만들 때 AWS 서비스를 하나씩 고르면 꽤 긴 목록이 나온다. CDN, API 입구, 함수 실행, PostgreSQL, 인증, 파일 저장, Redis, Queue, 이벤트 예약, 배포 파이프라인이 각각 다른 서비스다.