TrustManager — JSSE 신뢰 관리자의 기본 인터페이스
TrustManager — JSSE 신뢰 관리자의 기본 인터페이스
TrustManager는 JSSE(Java Secure Socket Extension) 신뢰 관리자들의 기본 인터페이스예요. 신뢰 관리자는 신뢰 결정을 내릴 때 사용되는 신뢰 자료(trust material)를 관리하고, 피어가 제시한 자격 증명(credential)을 받아들일지 말지 결정하는 역할을 해요.
본문
public interface TrustManager
TrustManager들은 TrustManagerFactory를 사용해 만들거나, TrustManager의 하위 인터페이스 중 하나를 직접 구현해서 만들 수 있어요. 알려진 하위 인터페이스로는 X509TrustManager가, 알려진 구현 클래스로는 X509ExtendedTrustManager가 있어요.
왜 중요한가요?
SSL/TLS 연결에서 클라이언트(또는 서버)는 상대방이 보여준 인증서가 진짜인지, 신뢰할 수 있는 기관이 서명했는지를 판단해야 해요. 그 판단(신뢰 결정)을 담당하는 게 바로 TrustManager예요.
- 무엇을 신뢰할지 — 어떤 인증 기관(CA) 인증서를 믿을지, 어떤 인증서 체인을 받아들일지를 관리해요.
- 어떻게 판단할지 — 피어가 제시한 자격 증명(인증서 체인)이 신뢰할 만한지 결정해요.
이 인터페이스 자체는 마커(marker)에 가깝고, 실제 신뢰 검증 로직은 이를 확장한 X509TrustManager 같은 구체적 인터페이스에서 정의돼요. 그래서 대부분의 경우 개발자는 X509TrustManager 또는 X509ExtendedTrustManager를 다루게 돼요.
관련 클래스
TrustManagerFactory— 신뢰 관리자 객체를 만드는 팩토리X509TrustManager— X.509 인증서 기반 신뢰 검증을 위한 확장 인터페이스