首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javax.net.ssl.SSLException in jMeter

javax.net.ssl.SSLException in jMeter
EN

Stack Overflow用户
提问于 2014-11-26 15:44:39
回答 1查看 3.7K关注 0票数 1

我正在服务器上测试一些功能。昨天以前一直很好。今天,他们已经启用了ssl到服务器(即,从http到https)。现在,当我运行我的测试计划时,我会得到以下错误。我该如何解决这个问题。

虽然我在请求中将协议值更改为https,但我得到了以下错误:

代码语言:javascript
复制
javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair
    at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.handleException(Unknown Source)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:436)
    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:643)
    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.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:481)
    at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:298)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1105)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1094)
    at org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:429)
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:257)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.RuntimeException: Could not generate DH keypair
    at com.sun.net.ssl.internal.ssl.DHCrypt.<init>(Unknown Source)
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverKeyExchange(Unknown Source)
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source)
    at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source)
    at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown Source)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
    ... 17 more
Caused by: java.security.InvalidAlgorithmParameterException: Prime size must be multiple of 64, and can only range from 512 to 1024 (inclusive)
    at com.sun.crypto.provider.DHKeyPairGenerator.initialize(DashoA13*..)
    at java.security.KeyPairGenerator$Delegate.initialize(Unknown Source)
    ... 24 more

原因是什么?我需要在我的请求中添加任何内容吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-26 17:09:33

Dupe of Java: Why does SSL handshake give 'Could not generate DH keypair' exception?Java 7 and Could not generate DH keypair除了update Java8已将DH限制提高到2048年。

当客户端Java (JSSE)和服务器使用短暂的Diffie-Hellman (DHE)协商密件,服务器使用大于1024位的D大小,而客户端Java不支持它时,就会发生这种情况。这取决于客户机Java版本和服务器实现以及(通常)配置的组合,而您没有指定这些配置。

如果您的客户端(这里是US )运行在Java6或Java7上,它不能处理超过1024的DH大小,这是安全所必需的,也是像NIST这样的机构对美国政府的要求。可取性下降的解决办法是:

  • 在Java8上运行客户端(假设服务器只需要DHE2048位,就像现在的标准/常规)
  • 如果服务器也支持ECDHE,或者比DHE更喜欢ECDHE,或者支持客户端首选项,可以使用 any Java8或/edit Java7 (支持ECDHE,在7u09之后更喜欢使用ECDHE),或者使用添加了ECC提供者的Java6 (后者支持和喜欢ECDHE)(但Java6不再受支持,因此总体上是一个糟糕的想法,也可能不支持最近编译的客户端)。
  • 如果服务器还支持平原-RSA(无短暂性),则更改您的客户端,使其只进行协商。对于标准的Java,这可以通过系统属性HttpsURLConnection来完成;我不知道Apache是做同样的还是等效的。这并不能为您的客户提供完美的前向保密,这并不是理想的,但比什么都没有。
  • 将服务器更改为使用1024位的DHE (对其他客户端来说稍微不太安全)或只使用简单的RSA(对其他客户端更不安全)。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27153288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档