title: SoapUI fails to connect HTTPS (SSLPeerUnverifiedException)
body: <p>I need to test web service that is being deployed to pre-release environment that is deployed on HTTPS endpoint. Unfortunatelly SoapUI fails with <code>SSLPeerUnverifiedException: peer not authenticated</code> exception. I used both versions 4.6.4 and very fresh 5.0.</p>
  
  <p>Env:</p>
  
  <p>endpoint is https, startcom certificate, network uses proxy (but same issue without proxy with different network)</p>
  
  <p>I have spent many hours, maybe a day googling for a solution. Especially this link looked promising: <a href="https://forum.soapui.org/viewtopic.php?f=13&amp;t=20866" rel="noreferrer">https://forum.soapui.org/viewtopic.php?f=13&amp;t=20866</a></p>
  
  <p>I extracted endpoint certificate via firefox and let it trust. So I modified <code>cacerts</code> from soapui JVM installation:</p>
  
  <pre><code>..\SoapUI-4.6.4\jre\lib\security&gt;keytool -import -alias HOSTNAME 
  -file endpoint.crt -keystore cacerts -storepass changeit
  </code></pre>
  
  <p>Restart and then retested - fail.</p>
  
  <p>Then I took different approach and let SoapUI JVM trust all StartCom certificates.</p>
  
  <pre><code>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
  </code></pre>
  
  <p>Restart and failed again. What else shall I do now?</p>
  
  <p>EDIT</p>
  
  <pre><code>2014-05-30 08:39:53,782 ERROR [errorlog] javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
  javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
  at sun.security.ssl.SSLSessionImpl.getPeerCertificates(Unknown Source)
  at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128)
  at org.apache.http.conn.ssl.SSLSocketFactory.createLayeredSocket(SSLSocketFactory.java:446)
  at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:499)
  at com.eviware.soapui.impl.wsdl.support.http.SoapUISSLSocketFactory.createLayeredSocket(SoapUISSLSocketFactory.java:268)
  at org.apache.http.impl.conn.DefaultClientConnectionOperator.updateSecureConnection(DefaultClientConnectionOperator.java:200)
  at org.apache.http.impl.conn.AbstractPoolEntry.layerProtocol(AbstractPoolEntry.java:277)
  at org.apache.http.impl.conn.AbstractPooledConnAdapter.layerProtocol(AbstractPooledConnAdapter.java:142)
  at org.apache.http.impl.client.DefaultRequestDirector.establishRoute(DefaultRequestDirector.java:758)
  at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:565)
  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:415)
  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
  at com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport$Helper.execute(HttpClientSupport.java:238)
  at com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport.execute(HttpClientSupport.java:348)
  at com.eviware.soapui.impl.wsdl.submit.transports.http.HttpClientRequestTransport.submitRequest(HttpClientRequestTransport.java:318)
  at com.eviware.soapui.impl.wsdl.submit.transports.http.HttpClientRequestTransport.sendRequest(HttpClientRequestTransport.java:232)
  at com.eviware.soapui.impl.wsdl.WsdlSubmit.run(WsdlSubmit.java:123)
  at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
  at java.util.concurrent.FutureTask.run(Unknown Source)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
  </code></pre>
  
  <p>SSL debug:</p>
  
  <pre><code>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
  </code></pre>