我在Tomcat 7上使用Java 1.7中的Spring使用REST Web服务。我在我的开发机上具有自签名证书。当我尝试使用Rest Client调用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)
谁能告诉我如何在不进行任何Java代码更改的情况下摆脱此错误?
注意:我已经在环境中运行以下命令:
keytool -genkey -v -keyalg RSA -alias tomcat -keypass 12345 -storepass 12345
看起来服务器正在请求客户端认证,并且您没有从客户端向服务器发送一个证书。尝试使用-Djavax.net.debug = all参数运行VM。
而且我认为,如果不对代码进行更改,就不可能做到这一点。