Tomcat 7에서 실행되는 Java 1.7에서 Spring을 사용하여 REST 웹 서비스를 제공했습니다. 자체 dev 컴퓨터에서 cert를 서명했습니다. 나는 나머지 클라이언트를 사용하여 API를 호출 할 때 오류가 아래에 있습니다 :피어가 웹 서비스에서 인증되지 않았습니까?
peer not authenticated
javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
at sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:397)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:572)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:640)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
at org.wiztools.restclient.HTTPClientRequestExecuter.execute(HTTPClientRequestExecuter.java:387)
at org.wiztools.restclient.ui.RESTViewImpl$2.run(RESTViewImpl.java:320)
중 하나가 어떻게 어떤 자바 코드를 변경하지 않고이 오류를 제거하는 방법을 말해 줄래?
참고 : 이미 내 ENV의 명령 아래 실행했습니다
서버가 클라이언트 authetication을 요청하고 클라이언트에서 서버로 하나의 인증서를 전송하지 않는 것 같습니다keytool -genkey -v -keyalg RSA -alias tomcat -keypass 12345 -storepass 12345
스프링 기반 컨트롤러 웹 서비스에 사용할 코드를 알려주시겠습니까? Production env에서 동일한 코드가 어떻게 작동합니까? 우리의 독창적 인 환경에서는 Load balancer가 Tomcat의 포트 8080으로 https 및 LB 리디렉션을 처리하도록하고 있습니다. 내 dev env의 경우 443 포트를 사용하고 있으며이 문제가 있습니다. –
나는 약간의 연구가 필요할 것이라고 생각한다. [여기] (http://stackoverflow.com/questions/875467/java-client-certificates-over-https-ssl)에서 시작할 수 있습니다. 작동하는 생산 환경에 관해서는 클라이언트 구성에 대해 묻는 서버 구성이어야합니다. – DiogoSantana