2012-09-21 2 views
3

그래서 SSL 지원 사이트를 테스트하기 위해 JMeter 설정을했습니다. (자체 인증서가 아닌 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 구현과 함께 사용하고 있습니다. Tomcat 7 (7.0.27)에 호스팅 된 내 서비스 중 하나에 대한 간단한 GET 요청입니다.

다음은 내 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의 문제 일뿐입니다. 모든 브라우저를 사용하여 문제없이 사이트를 방문 할 수 있습니다. Tomcat 앞에 Apache를 설치하고 mod_proxy 또는 mod_jk를 사용하면 문제가 없습니다. 어떤 도움을 주시면 감사하겠습니다.

답변

4

지난 논평을 마친 후 호스트와 일치하지 않는 인증서로 문제를 재현 할 수있었습니다.

Java 6의 버그가있는 것 같습니다. 실제로 JDK6에서는 문제가 재현되지만 JMeter 2.7에서는 JDK7에서는 발생하지 않습니다.

이 내가 여기 버그 오픈 녹음하려면 여기

을 그리고 올렉 나에게 JDK7에 대한 힌트를 주었다

분석을 부

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

은 어쩌면 당신은 변화를 시도 할 수 있지만, 당신은 당신의 솔루션을 그래서 어쨌든 그것은 JDK7와 함께 작동 :이 설정 tomcat7 사용자 정의에서 오는 될 수 구성을 rther.

이 공개적으로 사용 가능한 URL을 테스트 문제로 제안 해 주셔서 대단히 감사합니다.

감사합니다.

+0

빠른 처리를 해주셔서 감사합니다! Mac에서 테스트 중이므로 기본적으로 1.6을 사용하고 있지만 1.7로 업그레이드하는 것은 매력처럼 작동합니다. 감사합니다! –

관련 문제