2012-09-21 66 views
3

因此,我有JMeter安装程序来测试启用了SSL的站点(我从Geotrust获得了真正的证书,而不是自签名证书),并且当我尝试直接从Tomcat测试SSL连接时,我遇到了问题。我得到:javax.net.ssl.SSLPeerUnverifiedException:使用JMeter进行负载测试时没有通过身份验证

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)。

这是我的SSL连接器的Tomcat配置。请注意,我已经安装了APR /本机,并且它在EC2上的Ubuntu 12.04服务器上运行。

<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问题。我可以毫无问题地使用任何浏览器访问该网站,如果我将Apache放在Tomcat前面并使用mod_proxy或mod_jk,那么我没有任何问题。任何帮助,将不胜感激。

回答

4

在您最后发表评论之后,我设法重现了证书不符合您的主机和与您的主机匹配的证书的问题。

看来你正面临着Java 6中的一个bug。 事实上,我重现了JDK6的问题,但在JMeter 2.7中没有JDK7。

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

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

分析福rther您的配置,可能从您的自定义现身tomcat7配置:

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

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

非常感谢您提供此公开可用的URL以测试问题。

谢谢

+0

谢谢你的快速周转!我在Mac上测试,所以默认情况下我使用1.6,但升级到1.7就像魅力一样。非常感谢你! –

相关问题