TrustManager — JSSE 신뢰 관리자의 기본 인터페이스

TrustManager — JSSE 신뢰 관리자의 기본 인터페이스

TrustManager는 JSSE(Java Secure Socket Extension) 신뢰 관리자들의 기본 인터페이스예요. 신뢰 관리자는 신뢰 결정을 내릴 때 사용되는 신뢰 자료(trust material)를 관리하고, 피어가 제시한 자격 증명(credential)을 받아들일지 말지 결정하는 역할을 해요.

출처: Java API Reference

본문

public interface TrustManager

TrustManager들은 TrustManagerFactory를 사용해 만들거나, TrustManager의 하위 인터페이스 중 하나를 직접 구현해서 만들 수 있어요. 알려진 하위 인터페이스로는 X509TrustManager가, 알려진 구현 클래스로는 X509ExtendedTrustManager가 있어요.

왜 중요한가요?

SSL/TLS 연결에서 클라이언트(또는 서버)는 상대방이 보여준 인증서가 진짜인지, 신뢰할 수 있는 기관이 서명했는지를 판단해야 해요. 그 판단(신뢰 결정)을 담당하는 게 바로 TrustManager예요.

  • 무엇을 신뢰할지 — 어떤 인증 기관(CA) 인증서를 믿을지, 어떤 인증서 체인을 받아들일지를 관리해요.
  • 어떻게 판단할지 — 피어가 제시한 자격 증명(인증서 체인)이 신뢰할 만한지 결정해요.

이 인터페이스 자체는 마커(marker)에 가깝고, 실제 신뢰 검증 로직은 이를 확장한 X509TrustManager 같은 구체적 인터페이스에서 정의돼요. 그래서 대부분의 경우 개발자는 X509TrustManager 또는 X509ExtendedTrustManager를 다루게 돼요.

관련 클래스

  • TrustManagerFactory — 신뢰 관리자 객체를 만드는 팩토리
  • X509TrustManager — X.509 인증서 기반 신뢰 검증을 위한 확장 인터페이스

더 알아보기 (Learn more)