모든 SSL 문서 SSL 및 인증서

자체 서명 vs CA 서명 SSL 인증서

자체 서명 인증서는 직접 만든 것으로, 자신이 자신의 인증 기관 역할을 합니다. CA 서명 인증서는 브라우저가 이미 신뢰하는 인증 기관(Let’s Encrypt나 DigiCert 같은)이 발급하고 서명한 것입니다.

실질적인 차이: 자체 서명 인증서는 브라우저 보안 경고를 유발합니다. CA 서명 인증서는 그렇지 않습니다.

비교

자체 서명CA 서명
생성자사용자 (openssl 명령)신뢰할 수 있는 CA
브라우저 신뢰❌ 경고: “신뢰할 수 없음”✅ 자물쇠 아이콘
암호화 강도동일동일
비용무료무료 (Let’s Encrypt) 또는 유료
검증없음 — 자기 자신이 보증CA가 도메인/조직 검증
사용 사례개발, 내부, 테스트프로덕션 웹사이트
갱신수동 (유효 기간 직접 설정)90일 (LE) 또는 1년 (유료)
중간자 공격 보호⚠️ 약함 — 사용자가 경고 무시에 익숙해짐✅ 강함 — 실제 문제에만 경고

자체 서명 인증서에 경고가 표시되는 이유

브라우저는 누가 서명했는지를 기준으로 인증서를 신뢰합니다. OS와 브라우저에는 약 100-150개의 신뢰할 수 있는 루트 인증 기관 목록이 포함되어 있습니다. 서버가 이 CA 중 하나가 서명한 인증서를 제공하면 브라우저가 자물쇠를 표시합니다.

자체 서명 인증서는 어떤 신뢰할 수 있는 CA도 서명하지 않았습니다 — 자체 개인키로 서명한 것입니다. 브라우저는 인증서가 합법적인지 확인할 방법이 없으므로 경고를 표시합니다. 이것이 올바른 동작입니다 — CA 검증 없이는 누구나 google.com을 주장하는 인증서를 만들 수 있습니다.

자체 서명 인증서를 사용해야 하는 경우

내부 서비스

인터넷에 노출되지 않는 서비스 — 내부 대시보드, 모니터링 도구, 데이터베이스 관리 패널. 팀에서 자체 서명 CA를 신뢰 저장소에 추가할 수 있습니다.

개발 및 테스트

mkcert를 설정하지 않고 빠른 로컬 개발 HTTPS. 브라우저 경고가 번거롭지만 테스트에는 기능적입니다.

IoT 및 임베디드 기기

알려진 서버와 통신하며 인증서를 고정할 수 있는 기기 — 브라우저 신뢰 저장소가 관여하지 않습니다.

에어갭 네트워크

인터넷 접근이 없어 Let’s Encrypt의 ACME 프로토콜을 사용할 수 없는 네트워크. 자체 서명이 유일한 옵션입니다.

자체 서명 인증서를 사용하면 안 되는 경우

공개 웹사이트

사용자가 무서운 경고를 보고 떠납니다. 검색 엔진이 신뢰할 수 없는 인증서가 있는 HTTPS 페이지를 크롤링하지 않을 수 있습니다. Let’s Encrypt 인증서가 무료인데 자체 서명을 사용할 이유가 없습니다.

사용자 데이터를 처리하는 사이트

자체 서명 인증서는 사용자에게 보안 경고를 클릭하여 무시하는 습관을 들이게 합니다 — 좋은 보안의 반대입니다. 실제 공격이 경고를 유발할 때, “어차피 진행”을 클릭하는 것에 익숙해진 사용자는 알아채지 못합니다.

자체 서명 인증서 생성 방법

# ECDSA (권장)
openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:P-256 \
  -keyout key.pem -out cert.pem -days 365 -nodes \
  -subj "/CN=internal.example.com" \
  -addext "subjectAltName=DNS:internal.example.com,IP:10.0.0.5"

# RSA
openssl req -x509 -newkey rsa:2048 \
  -keyout key.pem -out cert.pem -days 365 -nodes \
  -subj "/CN=internal.example.com"

결과 cert.pemkey.pem을 서버 설정에 사용합니다. 참고: fullchain.pemchain.pem은 필요하지 않습니다 — 자체 서명 인증서에는 체인이 없습니다.

모든 시나리오에 대한 더 나은 대안

시나리오자체 서명 대신 사용할 것
프로덕션 웹사이트GetHTTPS를 통한 Let’s Encrypt — 무료, 신뢰됨, 5분
로컬 개발mkcert — 로컬에서 신뢰됨, 경고 없음
내부 서비스Let’s Encrypt (인터넷 접근 가능한 경우) 또는 사설 CA
테스트/스테이징Let’s Encrypt 스테이징 환경 — 무제한 테스트 인증서

SSL 인증서가 연간 $100 이상 비용이 들 때는 자체 서명 인증서가 합리적이었습니다. 이제 Let’s Encrypt가 무료이므로, 진정으로 격리된 환경을 제외하면 자체 서명할 이유가 거의 없습니다.

자주 묻는 질문

자체 서명 인증서가 CA 서명보다 덜 안전한가요?

암호화는 동일합니다 — 같은 알고리즘, 같은 키 강도. 차이점은 신뢰입니다: CA 서명 인증서는 신뢰할 수 있는 제3자를 통해 서버의 신원을 증명합니다. 자체 서명 인증서는 아무것도 증명하지 않습니다 — 누구나 어떤 도메인에 대해서도 만들 수 있습니다. 보안 문제는 암호화가 아니라 인증의 부재입니다.

브라우저가 자체 서명 인증서를 신뢰하게 만들 수 있나요?

네, 관리하는 컴퓨터에서는 가능합니다. 인증서(또는 이를 서명한 자체 서명 CA)를 OS/브라우저 신뢰 저장소에 가져옵니다. 이것이 mkcert가 자동화하는 것입니다. 하지만 다른 사람의 브라우저에서 신뢰하게 만들 수는 없습니다 — 그것은 실제 CA가 필요합니다.

호스팅 제공자가 자체 서명 인증서를 줬습니다. 괜찮은 건가요?

공개 웹사이트에는 아닙니다. 제공자에게 무료 Let’s Encrypt를 활성화해달라고 요청하세요(대부분의 호스트가 지원). 그렇지 않으면 GetHTTPS를 사용하여 직접 신뢰할 수 있는 인증서를 받으세요.

자체 CA를 만들면 안 되나요?

만들 수 있지만, 브라우저 신뢰 저장소에 추가하는 수년 걸리고 비용이 많이 드는 과정을 거치지 않으면 브라우저가 신뢰하지 않습니다. 사설 CA는 내부 인프라에서 작동합니다(팀이 루트 인증서를 설치). 공개 웹사이트에는 Let’s Encrypt 같은 신뢰할 수 있는 CA를 사용하세요.

관련 기사

SSL 및 인증서 2026-05-07
인증 기관(CA)이란 무엇인가?
인증 기관은 웹사이트의 신원을 증명하기 위해 SSL 인증서를 서명합니다. CA의 작동 방식, 신뢰 모델, 주요 CA, Let's Encrypt가 업계를 어떻게 변화시켰는지 알아보세요.
배포 2026-05-08
로컬 개발을 위한 localhost HTTPS 인증서
mkcert을 사용하여 localhost에서 신뢰할 수 있는 HTTPS를 설정합니다 - 브라우저 경고 없이. mkcert 설정, 자체 서명 인증서, Let's Encrypt가 localhost에 인증서를 발급할 수 없는 이유를 다룹니다.
시작하기 2026-05-08
무료 SSL 인증서 받는 방법 (단계별 가이드)
5분 만에 Let's Encrypt에서 무료 SSL 인증서를 발급받으세요 - 소프트웨어 설치 불필요, 계정 생성 불필요. 4가지 방법, 두 가지 챌린지 유형, 6개 플랫폼 설치, 문제 해결을 포함하는 완전 가이드입니다.
브라우저에서 무료 SSL 인증서 받기
설치 불필요, 계정 불필요. 개인키는 항상 기기에 남습니다.
인증서 발급