2010-06-18 2 views
3

Sun Glassfish 서버에서 SSL을 통해 외부 웹 서비스와 통신하는 응용 프로그램을 배포했습니다.신뢰할 수있는 인증서가 유효하지 않게됩니다.

java keytool cli (keytool -import -trustcacerts -keystore cacerts.jks -alias somealias -file somecert.cer)를 사용하여 cacerts.jks에서 수동으로 인증서를 가져 왔습니다.

나는 사물이 작동을 중지하고 내가 로그에 다음과 같은 출력을 얻을 때 모든 것이 더 이상 작동하지만 다음 후 확인 :

[#|2010-06-18T09:13:23.930+0200|WARNING|sun-appserver9.1|...|_ThreadID=850;_ThreadName=p: thread-pool-1; w: 901;javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: The certificate chain from the server is not trusted|...|#]

그리고 서비스가 작동을 멈 춥니 다 여기에서있다. 로그에 따르면 예외가 발생하기 직전에 인증서에 대한 질문을하고 기본적으로 서버가 no로 응답하고 이것이 오류를 생성하는 것으로 판단됩니다.

하지만 서버가 갑자기 인증서에 질문하는 이유는 무엇입니까? 인증서는 이미 가져와 져서 키 스토어에서 신뢰할 수있는 것으로 표시됩니다. 모든 날짜는 괜찮습니다. 내가 놓친 게 있니?

답변

1

아마도 시스템 속성 (javax.net.ssl.trustStore)을 변경하는 다른 응용 프로그램이있을 수 있습니다. javax.net.ssl.trustStore은 신뢰할 수있는 키 저장소를 가리 킵니다. 이 System 프로퍼티를 출력 해, 변경되는지 확인해주세요. 또 다른 옵션은 다음 옵션을 사용하여 JVM을 시작하는 것입니다. -Djavax.net.debug=SSL,handshake,data,trustmanager 이렇게하면 stdout 로그 파일에 몇 가지 자세한 출력이 제공됩니다.