2017-12-19 31 views
-1

서로를 요청해야하는 2 개의 springboot 응용 프로그램이 있습니다. 그들은 https를 통해 작동하고 설명한대로 here과 같은 키 저장소를 만들었습니다. 첫 번째 전송 요청이 두 번째, 내가 다음 오류를 얻을 때 : - 인증서가 자체 서명두 응용 프로그램 모두에 대해 동일한 키 저장소를 사용할 때 SSL 핸드 셰이크 예외가 발생했습니다.

Caused by: javax.net.ssl.SSLHandshakeException: SSLHandshakeException invoking https://service: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 

는 SSL 특성은

server.port = 5000 
security.require-ssl=true 
server.ssl.key-store-type:PKCS12 
server.ssl.key-store=classpath:keystore.p12 
server.ssl.key-store-password=secret 
server.ssl.key-alias=alias 

이 또한 내가 언급해야한다고 생각합니다.

무엇이 놓치거나 잘못 했습니까?

답변

0

이것은 의미가 없습니다. 각 끝의 ID는 동일하지 않으므로 인증서가 동일하지 않아야하며 실제로는 개인 키가 없어야합니다. 그렇지 않으면 그들은 사적인 것이 아닙니다.

당신이 필요합니다

  • 이 키 스토어
  • 이 truststores
  • 두 개의 인증서를

    • 이 키 쌍

      각 키 스토어의 인증서는 로 내 보낸 후 가져와야합니다 각 경우에 피어의 트러스트 스토어

  • +0

    같은 오류가 발생했습니다. JDK 키 스토어에 인증서를 추가하면 모든 것이 정상적으로되었습니다. Google은 인증서 자체 서명시이 문제가 발생할 수있는 몇 가지 기사를 보여줍니다. 동일한 키 스토어를 사용하는 이유는 비슷한 외부 서비스와 대화하는 두 부분으로 분할 된 하나의 앱이기 때문입니다. – Anatoly

    +0

    만약 당신이 커스텀 트러스트 스토어를 사용한다면, javax.net.ssl.trustStore' 속성을 통해 Java에 대해 * 알려 주어야합니다. – EJP