2013-08-13 4 views
1

유효성 검사 체인의 작동 방식을 이해하고 싶습니다. 내 트러스트 스토어에서 정말 필요한 인증서는 무엇입니까?중간 인증서로 SSL 체인 유효성 검사가 실패했습니다.

루트 CA -> 중간 1 -> 중간 2 -> 서버 인증서가있는 체인이 있습니다. 내 트러스트 스토어에는 중간 2 인증서 만 있습니다. 내 하나의 테스트 기계에서이 모든 권리,하지만 내 다른 (비슷한 구성으로 다른 서버에 문의) 작동하지 않습니다. 이 인기가있는 SunCertPathBuilderException : 요청한 대상 Exception에 대한 유효한 인증 경로를 찾을 수 없습니다. 서버가 전체 체인을 보냅니다. 솔루션은 전체 트러스트를 루트 CA에 연결하는 것입니다.

왜 내가 다른 컴퓨터가 아닌 다른 컴퓨터에서 작동하는지 알고 싶습니다. 체인 유효성 검사가 작동하는 방식에 영향을 미칠 수 있습니까? 서버가 전체 체인 유효성 검사를 요구할 수 있습니까?

jdk의 기본 신뢰 저장소가 자동으로 포함되는지 여부를 알 수 없습니다. 2 대의 머신은 1.7.0_21 (작동하지 않음) 및 1.7.0_25 (작동 중)의 JDK 버전이 약간 다릅니다. 그게 그렇게 중요한 건가?

한 가지 더 :이 SunCertPathBuilderException - 체인의 어느 부분이 마음에 들지 않는지 알아낼 수 있습니까?

어떤 힌트에 대해 기쁘게 생각합니다. 감사합니다. Heike

+0

두 서버의 키 저장소를 비교 했습니까? –

답변

1

에만 인증서 체인의 서명자의 어떤의 인증서가 필요합니다. 일반적으로 맨 위에있는 것.

-Djavax.net.debug=ssl,handshake에서 볼 수있는 체인 자체를 잘 살펴보고 로컬 truststore 파일에서 체인의 인증서 중 적어도 하나가 동일한 서명, 날짜, subjectDN, issuerDN 등으로 존재하는지 확인해야합니다. 디버그 로그에.

+0

결국 그것은 체인이었습니다. 너 괜찮 았어. 그것은 정말로 나에게 체인에 문제가 있다는 것을 모두 알려주는 데 도움이되었습니다. 정말 고맙습니다. – Heike409

1

중간 인증서 만 있으면됩니다. 다른 컴퓨터의 구성에 문제가 발생할 가능성이 큽니다. JVM 옵션에 -Djavax.net.debug=ssl을 추가하여 디버깅 정보를 표시 할 수 있습니다. (여기 http://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html#Debug 기타)

+0

감사합니다. 디버그 로그를 활성화하는 것은 항상 첫 번째 작업입니다. 그러나 그것은 정말로 도움이되지 않습니다. 서버 인증서 체인을 인쇄하고 unknown_certificate 오류로 핸드 셰이크에서 중지합니다. 정말 중간 인증서가 truststore에 있다는 것을 두 번 확인했습니다. 또한 ssl 디버그 로그에 인쇄되었습니다. 그게 다른 것이 될 수 없다고 확신합니까? – Heike409

+0

1.7.0_25를 별도의 폴더에 설치하여 사용해 볼 수 있습니까? – artbristol

+0

예. 그러나 나는 그것을 재현 할 수 없다. 그래서, 그것은 다른 무엇이어야합니다. 고마워, 지금까지. – Heike409

관련 문제