当项目端点从 http 移动到 https 时,我收到请求的握手失败错误。通过检查一些主题,我修改了 SoapUI-5.2.1.vmoptions 文件,添加了这个
-Dsoapui.https.protocols=TLSv1.2
或使用 SSL。并重新启动 SoapUI。
但是我仍然收到错误。
这是一个握手问题,这意味着 SoapUI 由于缺少证书而无法理解加密的 SSL/TLS 内容。要解决这个问题,您只需将证书导入到您的soapui 的密钥库中。密钥库文件名为“cacert”,通常位于 sosoapui_home/jre/lob/security,但您可能希望直接从首选项/SSL 设置中指向它来拥有自己的密钥库,如屏幕截图所示。
您可以在我的博客找到导入密钥的说明
移至soap ui 5.4为我解决了这个问题
我通过添加这一行来修复它:
-Dsoapui.https.protocols=TLSv1.1,TLSv1.2
to the file [soaphome]\bin\soap.vmoptions
希望有帮助
SoapUI 有子文件夹
jre
,其中包含其 java.lang. Java 7 来了,我用 Java 8 替换了它,它解决了问题。
这不是我们第一次在 Java 7 中观察到 ssl 问题。
我确实尝试了接受的答案,但它对我来说不起作用。
使其发挥作用:
使用最新版本的 SOAPUI。问题将会得到解决
SoapUI 5.7.0 也存在同样的问题。 但上面什么也没有。
我们做了什么?:
我们在导入 PEM 格式的密钥和证书时使用 KeyStore Explorer 创建了一个密钥库。 但是在 SoapUI 中使用这个 Keystore 会导致 SoapUI 中握手失败。
解决方案是什么:
我们使用了命令行工具
openssl
和 keytool
创建 PKCS12 密钥库:
openssl pkcs12 -export -in <path to .pem cert> -inkey <path to .key cert> -out <desired name of the .p12 file with the extension> -name <cert alias>
将 PKCS12 导入 Java 密钥库:
keytool -importkeystore -v -srckeystore <path to .p12 file> -srcstoretype PKCS12 -destkeystore <path to .jks> -deststoretype JKS
如果您已有 PKCS12 文件,也可以直接在 SoapUI 中使用它。 还可以使用 KeyStore Explorer 将 PKCS12 文件转换为 JKS。