인증서, 더 이상 귀찮은 존재가 아니다!
인증서(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)**을 통해 서비스의 안정성을 확보해야 한다.