javax.net.ssl.SSLPeerUnverifiedException:同行未被认证用JM

2019-07-31 19:31发布

所以,我必须JMeter的设置来测试我的启用SSL的网站(我已经得到了从GeoTrust,不是自签名的证书一个真正的证书)和我已经遇到了问题,当我尝试直接从Tomcat测试SSL连接。 我得到:

javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
    at com.sun.net.ssl.internal.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:352)
    at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128)
    at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:397)
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:148)
    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:150)
    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121)
    at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:575)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:425)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
    at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:277)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:62)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1060)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1049)
    at org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:442)
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:271)
    at java.lang.Thread.run(Thread.java:680)

每当我尝试连接。 这是使用JMeter的2.7与HttpClient4实施。 这是一个简单的GET请求托管在Tomcat 7的我服务之一(7.0.27兴趣的人)。

这里是我的Tomcat的配置我的SSL连接器。 请注意,我已经安装了APR /本地,这是一个Ubuntu 12.04服务器最多在EC2上运行。

<Connector port="8443" maxHttpHeaderSize="8192"
           protocol="HTTP/1.1" 
           URIEncoding="UTF-8" 
           acceptorThreadCount="5"
           maxThreads="400" 
           scheme="https"
           secure="true"
           SSLEnabled="true"
           SSLCipherSuite="ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH"
           SSLHonorCipherOrder="true"
           SSLVerifyClient="optional"
           SSLCertificateFile="/etc/tomcat7/ssl/star.example.com.crt"
           SSLCertificateKeyFile="/etc/tomcat7/ssl/star.example.com.key"
           SSLCertificateChainFile="/etc/tomcat7/ssl/geotrust.crt" />

再次,这仅仅是一个JMeter的问题。 我打了网站,而无需使用任何浏览器的问题,如果我在Tomcat的面前坚持Apache和使用或者mod_proxy的或mod_jk的,我没有任何问题。 任何帮助,将不胜感激。

Answer 1:

你最后的评论后,我设法重现问题与证书不匹配您的主机,并与一个与您的主机。

看来你正面临的Java 6中的错误实际上我重现问题与JDK6但不是在JDK7使用JMeter 2.7。

为了记录这个我开了错误的位置:

  • https://issues.apache.org/bugzilla/show_bug.cgi?id=53922

在这里,和Oleg给我讲起了JDK7的提示:

  • https://issues.apache.org/jira/browse/HTTPCLIENT-1234

进一步分析您的配置,可能从您的自定义现身tomcat7配置:

SSLCipherSuite="ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH"
SSLHonorCipherOrder="true"

也许你可以尝试改变,但无论如何,它与JDK7的作品,所以你有你的解决方案。

非常感谢您提出这个公开可用的网址,以测试问题。

谢谢



文章来源: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated when load testing with JMeter