Java SoapUI无法连接HTTPS(SSLPeerUnverifiedException)
我需要测试部署到部署在HTTPS端点上的预发布环境中的web服务。不幸的是,SoapUI失败,出现Java SoapUI无法连接HTTPS(SSLPeerUnverifiedException),java,ssl,soapui,Java,Ssl,Soapui,我需要测试部署到部署在HTTPS端点上的预发布环境中的web服务。不幸的是,SoapUI失败,出现SSLPeerUnverifiedException:peer not authenticated异常。我使用了4.6.4版和非常新鲜的5.0版 环境: 端点是https,startcom证书,网络使用代理(但同一问题没有不同网络的代理) 我花了很多时间,也许是一天的时间在谷歌上寻找解决方案。尤其是这个链接看起来很有希望: 我通过firefox提取端点证书并让它信任。因此,我修改了soapui JV
SSLPeerUnverifiedException:peer not authenticated
异常。我使用了4.6.4版和非常新鲜的5.0版
环境:
端点是https,startcom证书,网络使用代理(但同一问题没有不同网络的代理)
我花了很多时间,也许是一天的时间在谷歌上寻找解决方案。尤其是这个链接看起来很有希望:
我通过firefox提取端点证书并让它信任。因此,我修改了soapui JVM安装中的cacerts
:
..\SoapUI-4.6.4\jre\lib\security>keytool -import -alias HOSTNAME
-file endpoint.crt -keystore cacerts -storepass changeit
重新启动,然后重新测试-失败
然后我采取了不同的方法,让SoapUI JVM信任所有StartCom证书
keytool -import -trustcacerts -alias startcom.ca -file ca.crt -keystore cacerts
keytool -import -alias startcom.ca.sub -file sub.class1.server.ca.crt -keystore cacerts
重新启动并再次失败。我现在还能做什么
编辑
SSL调试:
adding as trusted cert:
Subject: CN=StartCom Certification Authority, OU=Secure Digital Certificate Signing, O=StartCom Ltd., C=IL
Issuer: CN=StartCom Certification Authority, OU=Secure Digital Certificate Signing, O=StartCom Ltd., C=IL
Algorithm: RSA; Serial number: 0x1
Valid from Sun Sep 17 21:46:36 CEST 2006 until Wed Sep 17 21:46:36 CEST 2036
Allow unsafe renegotiation: false
Allow legacy hello messages: true
Is initial handshake: true
Is secure renegotiation: false
Thread-20, WRITE: TLSv1 Handshake, length = 186
Thread-20, READ: TLSv1 Alert, length = 2
Thread-20, RECV TLSv1 ALERT: warning, unrecognized_name
SSL - handshake alert: unrecognized_name
Thread-20, handling exception: javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name
Thread-20, SEND TLSv1 ALERT: fatal, description = unexpected_message
Thread-20, WRITE: TLSv1 Alert, length = 2
Thread-20, called closeSocket()
Thread-20, IOException in getSession(): javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name
09:16:12,482 ERROR [WsdlSubmit] Exception in request: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
我认为你做得很好。如果在信任库上加载服务器证书,则连接必须工作,可能发生了重定向之类的情况。如果需要,可以尝试禁用SSL服务器证书验证。如果使用SOAPUI独立版本,请编辑
$SOAPUI\u HOME/bin/SOAPUI.bat
或$SOAPUI\u HOME/bin/SOAPUI.sh
,并将此参数-Dcom.sun.net.ssl.checkRevocation=false
添加为java选项:
soapui.bat
set JAVA\u OPTS=%JAVA\u OPTS%-Dcom.sun.net.ssl.checkRevocation=false
soapui.sh
JAVA_OPTS=“$JAVA_OPTS-Dcom.sun.net.ssl.checkRevocation=false”
希望这有帮助,好的,解决此问题的方法是设置
-Djsse.enableSNIExtension=false
在$SOAPUI\u HOME/bin/SOAPUI.bat中
答案中描述了原因:
摘要:
Java7引入了默认启用的SNI支持。我发现某些配置错误的服务器会在SSL握手中发送“无法识别的名称”警告,而大多数客户端都会忽略该警告。。。除了Java
更新:对于SoapUI 5.2.1,我不得不更改一个文件
SoapUI-5.2.1.vmoptions
,因为修改bat
文件没有帮助。对于任何使用Mac寻找相同答案的人(对不起,我不会对所选答案发表评论,因为我还没有足够的信誉点来评论!!!)。
如果您通过单击应用程序文件夹中的图标或使用Spotlight启动应用程序,则编辑soapui.sh不会产生任何影响
/应用程序/SoapUI-5.0.0.app/Contents
编辑vmoptions.txt并将-Dcom.sun.net.ssl.checkRevocation=false添加到文件底部。。保存并重新启动 如果您使用的是代理,请尝试绕过该代理(通过ProxySettings即SoapUI首选项)同时确保您未运行Fiddler,它将尝试充当SoapUI发出的任何请求的代理。如果要使其与Fiddler一起工作,需要将Fiddler根证书添加到Java信任存储中
另请参见:我也收到了以下信息:
Error getting response; javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
我遇到的问题只是在通过代理服务器时。没有代理直接连接到Internet正在工作
我尝试了所有这些解决方案,但都没有奏效
我甚至尝试在WS-Security Configuration->Truststores下的Java密钥存储中添加受信任的CA证书,但仍然得到了错误
我升级到了SOAPUI5.2.1,现在问题已经解决了
您可能值得尝试一下。我尝试使用了
-Dcom.sun.net.ssl.checkRevocation=false
和-djse.enableSNIExtension=false
选项,这两个选项似乎都不起作用
所做的工作是将证书导入到SoapUI的证书存储中。我知道询问者指定他们已经这样做了,但不清楚证书存储SoapUI实际选择使用哪个
我可以通过执行以下操作导入证书并使用它:
最后,SoapUI是一个糟糕的软件,如果可能的话,你应该尽量避免使用它。但这在大多数Java应用程序中都很常见。谢谢。我试过你的答案,但没用。我验证了该属性是在“帮助/系统属性”中设置的。设置此属性后,您是否会收到相同的错误?你能分享完整的stacktrace吗?问题的附件这对我在Windows 10上的SoapUI-5.1.3不起作用。连接得到reset@nl-这是另一个SoapUI、OS和java版本的旧响应。从评论的细节来看,很难看出你的案件会发生什么。考虑发布一个新的问题,包括更多的细节SoAPUI版本、java版本、OS和堆栈跟踪,这样会更容易得到帮助:谢谢。你提到soapui.bat是一个关键。我没有意识到我可以更改JVM参数。我有同样的问题,并尝试用“%JAVA%”-Djsse.enableSNIExtension=false%JAVA_OPTS%com.eviware.soapui.soapui%*修复它,但我仍然有一个例外。我对soapui.bat的修改可以吗?我在windows上使用它。比
Error getting response; javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
C:\> "C:\Program Files\SmartBear\SoapUI-5.6.0\jre\bin\java.exe" -jar "path\to\kse.jar"