인증서

hi2li·2026년 4월 28일

security

목록 보기
1/1

Root CA(최상위)

  • 신뢰의 시작점
  • 자기자신이 서명한다. → Self-Signed
  • 중간 CA를 발급한다.



Intermediate CA (중간 CA)

  • Root CA대신에 실제로 서버 인증서 발급(CSR)을 담당한다.
  • Root CA가 서명해준다.
  • 이렇게 중간 CA가 해주는 것은 Root CA의 키가 매우 중요하고, 유출시 큰 리스크가 있기 때문에 보호하기 위함이다.


브라우저/OS가 가지고 있는 것

  • 내부에 신뢰할 수 있는 Root CA목록이 있음.
  • intermediate은 브라우저/os가 가지고 있지 않고, 서버가 같이 보내줌.
  • 서버는 서버의 인증서와 Intermediate CA인증서를 함께 보내준다.
    • 서버의 인증서를 발급받을 때 intermediate인증서를 같이 받는다.
    • 예를들어 Let’s encrypte같은 CA에서 발급받으면 서버 인증서 (server.crt)와 intermeidate인증서 (chain.crt, ca_bundle.crt)를 함께 받는다.


누가 누구를 서명하냐 (핵심)

  1. 서버 인증서 (서버 정보 + 공개키)    →    intermediate CA가 서명

  2. Intermediate 인증서     →     Root CA가 서명

  3. Root CA     →     자기 자신이 서명 (self-signed)




동작구조

인증서란? 그리고 root CA의 역할

브라우저, 서버 A, CA가 있을 때 인증서는 서버가 “이 도메인의 주인이 맞고, CA가 이를 보증한다”는 것을 증명하기 위해 사용된다.

이 인증서는 CA의 개인키로 서명되어 있으며, 브라우저는 OS나 브라우저에 저장된 신뢰된 CA 인증서(공개키 포함)를 이용해 이를 검증한다.

브라우저와 OS에는 미리 신뢰된 Root CA 인증서들이 저장되어 있고, 이 Root CA 인증서는 CA가 스스로 서명한(self-signed) 인증서이다.

브라우저는 이 Root CA를 신뢰의 기준으로 삼고, 이를 기반으로 이어지는 인증서 체인을 통해 서버를 신뢰하게 된다.



Intermediate CA와 인증서 발급의 구조(체인)

실제 운영 환경에서는 보안성과 관리 효율을 위해 Root CA가 직접 서버 인증서를 서명하지 않고, Intermediate CA(중간 CA)를 통해 인증서를 발급하는 구조를 사용한다.



서버 인증서 발급 과정 (CSR)

서버는 미리 CA로부터 인증서를 발급받아야 한다.

과정은 다음과 같다.

  1. 서버 A는 자신의 공개키를 포함한 CSR(인증서 서명 요청)을 생성하고, 이를 자신의 개인키로 서명하여 CA에 전달한다. 이 요청은 일반적으로 Intermediate CA로 전달된다.

  2. Intermediate CA는 CSR에 포함된 공개키를 이용해 서명을 검증하여 요청자가 해당 개인키의 소유자임을 확인하고, DNS 또는 HTTP 기반 방식으로 도메인 소유 여부를 추가로 검증한다.

  3. 검증이 완료되면 Intermediate CA는 자신의 개인키로 서버 인증서를 서명하여 발급한다.

  4. 이때 Intermediate CA 역시 상위 CA(또는 Root CA)로부터 이미 자신의 인증서를 발급받아 보유하고 있는 상태이며, 해당 인증서는 상위 CA의 개인키로 서명되어 있다.

  5. 따라서 신뢰 구조는 Root CA → Intermediate CA → 서버 인증서의 형태로 계층적으로 구성된다.



TLS 통신의 시작후, 인증서 체인 전달 과정

TLS 통신이 시작되면 서버는 자신의 인증서만 전달하는 것이 아니라, 함께 Intermediate CA 인증서도 브라우저에 전달한다.

즉, 서버는 단일 인증서가 아닌 인증서 체인(서버 인증서 + Intermediate CA 인증서)을 함께 전송한다.

Root CA 인증서는 브라우저나 OS에 이미 내장되어 있기 때문에 별도로 전달되지 않는다.



브라우저의 "인증서 체인 검증"

브라우저는 전달받은 인증서 체인을 바탕으로 검증을 수행한다.

먼저 서버 인증서가 Intermediate CA에 의해 서명되었는지 확인하고,

이어서 Intermediate CA 인증서가 상위 CA 또는 Root CA에 의해 서명되었는지를 검증한다.

최종적으로 이 체인이 브라우저에 내장된 신뢰된 Root CA까지 연결되면 해당 서버를 신뢰하게 된다.



인증서 검증 이후 TLS 핸드셰이크의 완료 및 암호화 통신

검증이 성공하면 TLS 핸드셰이크를 계속 진행하여 세션 키를 생성하고, 이후 안전한 암호화 통신을 수행한다.

결국 브라우저는 이미 신뢰하고 있는 Root CA를 기준으로, 그 아래 단계에서 서명된 Inte rmediate CA와 서버 인증서를 단계적으로 검증함으로써 신뢰를 확립한다.

profile
easy come , easy go

0개의 댓글