인증서, 더 이상 귀찮은 존재가 아니다!

by DD
3개월 전
조회수 72

인증서(Certificate)는 디지털 신원 증명서로, 웹 서버, 클라이언트, 개인의 신원을 증명하는 핵심 보안 요소

TLS Handshake 과정을 통해 인증서가 HTTPS 통신에서 안전한 연결(Secure Connection)을 설정하는 데 사용됨

CA(Certificate Authority)는 인증서 발급 및 진위 보증을 담당하며, 신뢰 체인(Chain of Trust)을 통해 인증서의 유효성을 검증

인증서 파일 형식, 도메인 인증서 종류, 실무 이슈(체인 불완전, CN vs SAN) 등 다양한 실무 문제를 제시

OpenSSL, Java keytool 등 인증서 관리 도구(Certificate Management Tools)를 활용한 실무 팁 제공

인증서의 핵심 구성 요소

인증서는 Subject, Public Key, 유효 기간(Validity Period) 등 다양한 정보를 포함하며, CA(Certificate Authority)의 디지털 서명(Digital Signature)을 통해 위변조를 방지한다.

Subject: 인증서 소유자 정보(도메인, 조직명 등)

Public Key: 공개 키 암호화에 사용되는 키

Signature: CA의 개인 키로 암호화된 해시 값으로, 인증서의 무결성 보장

인증서의 구조를 이해하는 것은 보안 취약점(Security Vulnerability)을 파악하고, 올바른 인증서 관리(Certificate Management)를 위한 첫걸음이다.

TLS/HTTPS 통신 과정: 핸드셰이크(Handshake)

TLS Handshake는 브라우저와 서버 간의 안전한 통신을 설정하는 과정으로, 인증서 검증(Certificate Verification)이 핵심 단계이다.

Client Hello: 클라이언트가 지원하는 암호화 방식(Cipher Suites)을 서버에 전달

Server Hello + Certificate: 서버가 자신의 인증서를 클라이언트에 전송

Certificate Verification: 클라이언트가 CA, 유효 기간, 도메인 일치 여부 등을 검증

Key Exchange: Diffie-Hellman 알고리즘으로 세션 키(Session Key) 생성

Secure Communication: 세션 키를 이용한 대칭 키 암호화 기반의 양방향 보안 통신(Two-way Secure Communication) 시작

인증 기관(CA)과 신뢰 체인(Chain of Trust)

CA는 인증서 발급 및 관리의 핵심 주체로, Root CA, Intermediate CA, End-Entity Certificate로 구성된 신뢰 체인을 통해 인증서의 유효성을 검증한다.

Root CA: 브라우저/OS에 사전 설치된 신뢰할 수 있는 CA

Intermediate CA: Root CA의 서명을 받아 발급된 CA

End-Entity Certificate: 실제 웹사이트에 발급되는 인증서

브라우저는 Root CA부터 End-Entity Certificate까지의 신뢰 체인을 검증(Chain Verification)하여 인증서의 진위 여부를 판단하며, 신뢰 체인이 불완전할 경우 경고 메시지(Warning Message)를 표시한다.

도메인 인증서 종류: DV, OV, EV

도메인 인증서는 검증 수준에 따라 DV(Domain Validated), OV(Organization Validated), EV(Extended Validation)로 구분되며, 각각의 검증 절차(Verification Process)발급 시간(Issuance Time)이 다르다.

DV: 도메인 소유권만 확인, 발급 시간 수분~수시간

OV: 도메인+조직 실재 확인, 발급 시간 1~3일

EV: 도메인+조직+법적 실재 확인, 발급 시간 1~2주

Certificate Policies 확장 필드의 OID(Object Identifier)를 통해 DV/OV/EV를 구분할 수 있으며, 높은 수준의 인증서(High-Level Certificate)**일수록 더 많은 정보와 신뢰도를 제공한다.

실무에서 자주 마주치는 인증서 관리 이슈

실무에서는 인증서 체인 불완전, CN vs SAN, OpenSSL/keytool 명령어 활용 등 다양한 문제에 직면하며, 문제 해결 능력(Problem-solving Skills)이 중요하다.

인증서 체인 불완전: 서버가 End-Entity Certificate만 제공하는 경우, 중간 CA(Intermediate CA) 인증서 누락으로 인해 신뢰 오류 발생

CN vs SAN: Chrome 58+ 버전부터 CN을 무시하고 SAN만 확인하므로, SAN에 모든 도메인 포함 여부 확인 필수

OpenSSL/keytool: 인증서 파일 형식 변환, 정보 확인, 만료일 확인 등 다양한 작업 자동화(Automation)에 활용

정기적인 인증서 갱신(Certificate Renewal)모니터링(Monitoring)**을 통해 서비스의 안정성을 확보해야 한다.

인증서 톺아보기 시리즈 1: 인증서란? 디지털 신뢰의 시작