首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当发出HTTPS请求时,在SoapUI 5.2.1中获取不支持的加密套件

当发出HTTPS请求时,在SoapUI 5.2.1中获取不支持的加密套件
EN

Stack Overflow用户
提问于 2016-05-20 10:15:47
回答 1查看 7.1K关注 0票数 2

我正在尝试发出一个HTTPS请求来发送苹果推送通知(APN),以使用SoapUI 5.2.1测试我的应用程序。我对SoapUI进行了以下配置更改,以支持TLS1.2连接。

  • 我创建了一个jks密钥存储库,并为iOS应用程序和api.development.push.apple.com链中的所有证书添加了一个私钥
  • 在SoapUI SSL设置中,我设置了KeyStore、KeystorePassword并选中了“需要客户端身份验证”
  • 在vmoptions.txt of SoapUI中,我添加了以下Java选项

-Dsun.security.ssl.allowUnsafeRenegotiation=true -Dsoapui.https.protocols=TLSv1.2 -Dsoapui.https.ciphers=ECDHE-RSA-AES256-GCM-SHA384

  • SoapUI jre.bundle中的JCE文件已被无限强管辖权策略文件所取代。

如果我使用curl发送一个使用详细(-vvv)的推送通知,则TLS 1.2中的协商结果将与密码ECDHE-RSA256-GCM-SHA 384进行协商。因此,当与SoapUI连接时,协议和密码应该被Apple服务器所接受。

代码语言:javascript
运行
复制
* Connected to api.development.push.apple.com (17.172.238.203) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ECDHE-RSA-AES256-GCM-SHA384
* successfully set certificate verify locations:
*   CAfile: /usr/local/etc/openssl/cert.pem
  CApath: none
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Request CERT (13):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS handshake, CERT verify (15):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384

当现在在SoapUI中向https://api.development.push.apple.com/3/device/{device id}发出HTTPS Post请求时,我仍然得到错误ERROR:java.lang.IllegalArgumentException: Unsupported ciphersuite ECDHE-RSA-AES256-GCM-SHA384

当使用Java 7 JSSE密码套件名称时,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384仍然得到不支持的密码套件错误。

日志中没有详细的信息。有什么帮助/想法/想法/暗示吗?

更新1

我使用的是SoapUI 5.2.1MacOSX安装程序和集成的Java7。Java根据Java 7文档做的,不支持TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384密码套件。

将SoapUI 5.2.1MacOSX安装程序替换为不包括SoapUI的SoapUI 5.2.1MacOSXzip。我安装了Java 1.8.0_60,它确实支持必要的密码套件。(参考这里)

修改soapui.sh脚本以包含必要的Java

代码语言:javascript
运行
复制
if [ $SOAPUI_HOME != "" ]
then
    JAVA_OPTS="$JAVA_OPTS -Dsoapui.ext.libraries=$SOAPUI_HOME/bin/ext"
    JAVA_OPTS="$JAVA_OPTS -Dsoapui.ext.listeners=$SOAPUI_HOME/bin/listeners"
    JAVA_OPTS="$JAVA_OPTS -Dsoapui.ext.actions=$SOAPUI_HOME/bin/actions"
    JAVA_OPTS="$JAVA_OPTS -Djava.library.path=$SOAPUI_HOME/bin"
    JAVA_OPTS="$JAVA_OPTS -Dwsi.dir=$SOAPUI_HOME/wsi-test-tools"
  JAVA_OPTS="-Dsun.security.ssl.allowUnsafeRenegotiation=true"
  JAVA_OPTS="-Dsoapui.https.protocols=TLSv1.2"
  JAVA_OPTS="-Dsoapui.https.ciphers=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
  JAVA_OPTS="-Djavax.net.debug=ssl,handshake"
#uncomment to disable browser component
#   JAVA_OPTS="$JAVA_OPTS -Dsoapui.browser.disabled=true"
fi

现在得到下一个错误,ERROR:org.apache.http.client.ClientProtocolException。可能与SoapUI可能不支持的HTTP/2协议有关。

更新2

正如@vzamanillo Java 8所建议的,默认情况下使用TLS 1.2,因此可以删除添加的Java选项。CipherSuite问题现在得到解决,出现了错误;

ERROR:org.apache.http.client.ClientProtocolExceptionis

这是一个与SSL、TLS或密码套件无关的错误,但可能是SoapUI不支持HTTP/2的一个问题。

EN

回答 1

Stack Overflow用户

发布于 2016-05-23 05:13:19

Java7不支持TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384加密套件,因此SoapUI 5.2.1使用了Java8。将Java选项Dsoapui.https.protocols=TLSv1.2设置为强制TLSc1.2也是不必要的,因为这是Java8的默认设置。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37344044

复制
相关文章

相似问题

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