2017-03-21 1 views
1

HTTPS를 통해 다른 서비스와 통신하는 마이크로 서비스를 작성하고 있습니다. 자바 클라이언트 구현, truststore에서 루트 인증서를 읽은 다음 그것을 통해 들어오는 인증서를 확인하십시오.Java 클라이언트를 사용한 SSL 인증서 유효성 확인

이제 제 질문은 - 기본적으로 2 수준 인증서 만 루트 인증서를 사용하여 유효성을 검사하거나 차례로 모든 체인 인증서도 유효성을 검사합니까?

나는 okhttp를 사용 중입니다. 내 가정은 모든 Java 클라이언트가 동일한 방식으로 작동해야한다는 것입니다. 여기에 주관성이 있는지 알려주십시오. 감사. 당신이 신뢰의 루트 인증서를 포함하는 경우

답변

2

은 전체 체인은

핸드 셰이크 중에 SSL 서버 루트에 클라이언트에 잎 인증서의 인증 체인을 송신

을 확인합니다. 루트 인증서가 포함되어 있지만, 보통은하지

기본 자바 클라이언트의 신뢰 관리자는 인증서 또는 인증서 자체

+0

의 발행을 찾을 때까지의 소요하자 신뢰에보고 제공된 인증 체인의 유효성을 검사하다 할 수있다 이 경우 인증서 체인은 root -> cert1 -> cert2 -> cert3입니다. 핸드 셰이크가 시작되면 서버는 cert1 -> cert2 -> cert3을 전송합니다. 그러면 클라이언트는 루트를 사용하여 cert1의 유효성을 검사 한 다음 모든 체인이 유효하다는 결론에 내재적으로 도달합니까? 아니면 cert2와 cert3도 유효한지 확인합니다. –

+0

체인은 cert3 -> cert2 -> cert1 -> root의 역순으로 보내고 확인됩니다. 클라이언트는 루트가 발견 될 때까지 cert3, cert2 및 cert1의 유효성을 검사합니다. – pedrofb

+0

그래서 서명 cert3은 서버에서 오는 방법 인 cert2를 사용하여 검증됩니다. 그렇다면 가치는 무엇일까요? 또한 Java 구현은 소유자 도메인, 날짜 및 기타 세부 사항의 유효성을 검사합니까? 그리고 모든 java http 클라이언트는 비슷한 방식으로 동작합니까? –