<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic SSLHandshakeException in tRestClient in Talend Studio</title>
    <link>https://community.qlik.com/t5/Talend-Studio/SSLHandshakeException-in-tRestClient/m-p/2315748#M86374</link>
    <description>Hi. I have been trying to get tRestClient to work with our corporate API (which I have got working with postman - so I know it works the expected way). I have a tSetKeyStore connected to tRestClient on SubJob OK, then a tLogRow connected to that as Main so I can see what happens. What happens is that I get&amp;nbsp;SSLHandshakeException. I have dredged the web for info on this and talked to our API developers and the only thing I can point to is that the tSetKeyStore isn't passing the correct certificate info. I have the certificate for the API domain in cacerts and have input the correct password. The API does not expect client authentication so I have not supplied by own certificate (although I tried that too and it still failed). The errors I get are quite lengthy, but the first chunk is pasted below (API domain changed to "mydomain" for privacy). 
&lt;BR /&gt;I am running TOS for DI version 6.1.1, Java 1.8.0_91. 
&lt;BR /&gt;Can someone please advise? Is there perhaps a JVM argument I can supply which will override whatever is stopping this? 
&lt;BR /&gt;Thanks, Charlie 
&lt;BR /&gt; connecting to socket on port 3767 
&lt;BR /&gt; connected 
&lt;BR /&gt;: org.apache.cxf.phase.PhaseInterceptorChain - Interceptor for { 
&lt;A href="https://api.mydomain.io/1.0/token}tRESTClient" target="_blank" rel="nofollow noopener noreferrer"&gt;https://api.mydomain.io/1.0/token}tRESTClient&lt;/A&gt; has thrown exception, unwinding now 
&lt;BR /&gt;org.apache.cxf.interceptor.Fault: Could not send Message. 
&lt;BR /&gt;at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64) 
&lt;BR /&gt;at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) 
&lt;BR /&gt;at org.apache.cxf.jaxrs.client.AbstractClient.doRunInterceptorChain(AbstractClient.java:649) 
&lt;BR /&gt;at org.apache.cxf.jaxrs.client.WebClient.doChainedInvocation(WebClient.java:1093) 
&lt;BR /&gt;at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:894) 
&lt;BR /&gt;at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:865) 
&lt;BR /&gt;at org.apache.cxf.jaxrs.client.WebClient.invoke(WebClient.java:428) 
&lt;BR /&gt;at org.apache.cxf.jaxrs.client.WebClient.get(WebClient.java:611) 
&lt;BR /&gt;at local_project.myapijob_0_1.myapijob.tRESTClient_2Process(myapijob.java:772) 
&lt;BR /&gt;at local_project.myapijob_0_1.myapijob.tSetKeystore_1Process(myapijob.java:1073) 
&lt;BR /&gt;at local_project.myapijob_0_1.myapijob.runJobInTOS(myapijob.java:1306) 
&lt;BR /&gt;at local_project.myapijob_0_1.myapijob.main(myapijob.java:1151) 
&lt;BR /&gt;Caused by: javax.net.ssl.SSLHandshakeException: SSLHandshakeException invoking 
&lt;A href="https://api.mydomain.io/1.0/token" target="_blank" rel="nofollow noopener noreferrer"&gt;https://api.mydomain.io/1.0/token&lt;/A&gt;: Received fatal alert: handshake_failure 
&lt;BR /&gt;at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
&lt;BR /&gt;at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
&lt;BR /&gt;at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
&lt;BR /&gt;at java.lang.reflect.Constructor.newInstance(Unknown Source) 
&lt;BR /&gt;at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1376) 
&lt;BR /&gt;at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1360) 
&lt;BR /&gt;at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) 
&lt;BR /&gt;at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:651) 
&lt;BR /&gt;at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) 
&lt;BR /&gt;... 11 more 
&lt;BR /&gt; 
&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009MDla.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/153270i6EDFF41EE4C44226/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009MDla.png" alt="0683p000009MDla.png" /&gt;&lt;/span&gt; 
&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009MDel.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/152604iB465839D6EE01048/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009MDel.png" alt="0683p000009MDel.png" /&gt;&lt;/span&gt;</description>
    <pubDate>Mon, 20 Mar 2017 09:11:23 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2017-03-20T09:11:23Z</dc:date>
    <item>
      <title>SSLHandshakeException in tRestClient</title>
      <link>https://community.qlik.com/t5/Talend-Studio/SSLHandshakeException-in-tRestClient/m-p/2315748#M86374</link>
      <description>Hi. I have been trying to get tRestClient to work with our corporate API (which I have got working with postman - so I know it works the expected way). I have a tSetKeyStore connected to tRestClient on SubJob OK, then a tLogRow connected to that as Main so I can see what happens. What happens is that I get&amp;nbsp;SSLHandshakeException. I have dredged the web for info on this and talked to our API developers and the only thing I can point to is that the tSetKeyStore isn't passing the correct certificate info. I have the certificate for the API domain in cacerts and have input the correct password. The API does not expect client authentication so I have not supplied by own certificate (although I tried that too and it still failed). The errors I get are quite lengthy, but the first chunk is pasted below (API domain changed to "mydomain" for privacy). 
&lt;BR /&gt;I am running TOS for DI version 6.1.1, Java 1.8.0_91. 
&lt;BR /&gt;Can someone please advise? Is there perhaps a JVM argument I can supply which will override whatever is stopping this? 
&lt;BR /&gt;Thanks, Charlie 
&lt;BR /&gt; connecting to socket on port 3767 
&lt;BR /&gt; connected 
&lt;BR /&gt;: org.apache.cxf.phase.PhaseInterceptorChain - Interceptor for { 
&lt;A href="https://api.mydomain.io/1.0/token}tRESTClient" target="_blank" rel="nofollow noopener noreferrer"&gt;https://api.mydomain.io/1.0/token}tRESTClient&lt;/A&gt; has thrown exception, unwinding now 
&lt;BR /&gt;org.apache.cxf.interceptor.Fault: Could not send Message. 
&lt;BR /&gt;at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64) 
&lt;BR /&gt;at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) 
&lt;BR /&gt;at org.apache.cxf.jaxrs.client.AbstractClient.doRunInterceptorChain(AbstractClient.java:649) 
&lt;BR /&gt;at org.apache.cxf.jaxrs.client.WebClient.doChainedInvocation(WebClient.java:1093) 
&lt;BR /&gt;at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:894) 
&lt;BR /&gt;at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:865) 
&lt;BR /&gt;at org.apache.cxf.jaxrs.client.WebClient.invoke(WebClient.java:428) 
&lt;BR /&gt;at org.apache.cxf.jaxrs.client.WebClient.get(WebClient.java:611) 
&lt;BR /&gt;at local_project.myapijob_0_1.myapijob.tRESTClient_2Process(myapijob.java:772) 
&lt;BR /&gt;at local_project.myapijob_0_1.myapijob.tSetKeystore_1Process(myapijob.java:1073) 
&lt;BR /&gt;at local_project.myapijob_0_1.myapijob.runJobInTOS(myapijob.java:1306) 
&lt;BR /&gt;at local_project.myapijob_0_1.myapijob.main(myapijob.java:1151) 
&lt;BR /&gt;Caused by: javax.net.ssl.SSLHandshakeException: SSLHandshakeException invoking 
&lt;A href="https://api.mydomain.io/1.0/token" target="_blank" rel="nofollow noopener noreferrer"&gt;https://api.mydomain.io/1.0/token&lt;/A&gt;: Received fatal alert: handshake_failure 
&lt;BR /&gt;at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
&lt;BR /&gt;at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
&lt;BR /&gt;at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
&lt;BR /&gt;at java.lang.reflect.Constructor.newInstance(Unknown Source) 
&lt;BR /&gt;at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1376) 
&lt;BR /&gt;at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1360) 
&lt;BR /&gt;at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) 
&lt;BR /&gt;at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:651) 
&lt;BR /&gt;at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) 
&lt;BR /&gt;... 11 more 
&lt;BR /&gt; 
&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009MDla.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/153270i6EDFF41EE4C44226/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009MDla.png" alt="0683p000009MDla.png" /&gt;&lt;/span&gt; 
&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009MDel.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/152604iB465839D6EE01048/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009MDel.png" alt="0683p000009MDel.png" /&gt;&lt;/span&gt;</description>
      <pubDate>Mon, 20 Mar 2017 09:11:23 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/SSLHandshakeException-in-tRestClient/m-p/2315748#M86374</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2017-03-20T09:11:23Z</dc:date>
    </item>
    <item>
      <title>Re: SSLHandshakeException in tRestClient</title>
      <link>https://community.qlik.com/t5/Talend-Studio/SSLHandshakeException-in-tRestClient/m-p/2315749#M86375</link>
      <description>Hi,
&lt;BR /&gt;We suppose that there is something wrong with you when you&amp;nbsp;
&lt;FONT size="1"&gt;&lt;FONT face="Verdana, Helvetica, Arial, sans-serif"&gt;add certficates in&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;FONT size="1"&gt;&lt;FONT face="Verdana, Helvetica, Arial, sans-serif"&gt;local Java KeyStore.&lt;/FONT&gt;&lt;/FONT&gt;
&lt;BR /&gt;
&lt;FONT size="1"&gt;&lt;FONT face="Verdana, Helvetica, Arial, sans-serif"&gt;Could you please take a look at this document to see if it is Ok with you?&lt;/FONT&gt;&lt;/FONT&gt;
&lt;BR /&gt;
&lt;FONT size="1"&gt;&lt;FONT face="Verdana, Helvetica, Arial, sans-serif"&gt;&lt;A href="https://www.chrissearle.org/2007/10/25/Adding_self-signed_https_certificates_to_java_keystore/" target="_blank" rel="nofollow noopener noreferrer"&gt;https://www.chrissearle.org/2007/10/25/Adding_self-signed_https_certificates_to_java_keystore/&lt;/A&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;BR /&gt;Best regards
&lt;BR /&gt;Sabrina</description>
      <pubDate>Tue, 21 Mar 2017 07:28:04 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/SSLHandshakeException-in-tRestClient/m-p/2315749#M86375</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2017-03-21T07:28:04Z</dc:date>
    </item>
    <item>
      <title>Re: SSLHandshakeException in tRestClient</title>
      <link>https://community.qlik.com/t5/Talend-Studio/SSLHandshakeException-in-tRestClient/m-p/2315750#M86376</link>
      <description>Thanks for the reply Sabrina. There probably is something wrong with me but I don't think it's the certificates. I have added the certificate for the api domain into cacerts and put that in the tSetKeyStore as the TrustStore file. To make sure it is in cacerts, I ran keytool -list on cacerts and it confirmed that it is a trsutedCertEntry with valid to and from dates. The api does not require me to supply my certificate so it can authorise me, but I have tried that anyway (as KeyStore file in tSetKeyStore) an it made no difference. 
&lt;BR /&gt;Interestingly, if I run it in java debug mode it says that there are error and asks if I want to proceed (this is of interest because there are no compile errors when I run it normally). Then if I proceed in debug mode, it eventually outputs the api response I am after. So it seems to get the required response from the API in java debug mode, but run normally it fails!</description>
      <pubDate>Tue, 21 Mar 2017 09:14:10 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/SSLHandshakeException-in-tRestClient/m-p/2315750#M86376</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2017-03-21T09:14:10Z</dc:date>
    </item>
    <item>
      <title>Re: SSLHandshakeException in tRestClient</title>
      <link>https://community.qlik.com/t5/Talend-Studio/SSLHandshakeException-in-tRestClient/m-p/2315751#M86377</link>
      <description>Hi,
&lt;BR /&gt;Are you using Jre 1.8 instead of JDK 1.8? I see that your truststore file has been saved under C:\Program Files (x86)\Java\jre1.8.0_91\lib\security\cacerts.
&lt;BR /&gt;Best regards
&lt;BR /&gt;Sabrina</description>
      <pubDate>Wed, 22 Mar 2017 08:41:27 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/SSLHandshakeException-in-tRestClient/m-p/2315751#M86377</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2017-03-22T08:41:27Z</dc:date>
    </item>
    <item>
      <title>Re: SSLHandshakeException in tRestClient</title>
      <link>https://community.qlik.com/t5/Talend-Studio/SSLHandshakeException-in-tRestClient/m-p/2315752#M86378</link>
      <description>Yes I am Sabrina. Should it be JDK then? I will look into that. All of the Talend development so far has been with this java stack, which is JRE.</description>
      <pubDate>Wed, 22 Mar 2017 14:11:17 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/SSLHandshakeException-in-tRestClient/m-p/2315752#M86378</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2017-03-22T14:11:17Z</dc:date>
    </item>
  </channel>
</rss>

