Hi,
I did have a look at similar posts about Java 6 and earlier versions on SDK, but since this problem has surfaced suddenly just today for us and we use different versions of java and sdk, thought of posting a new query.
All our reporting jobs have failed today because of a SSL Handshake exception in our webservice logs coming from the purecloud java sdk that we use.
We have been using the purecloud sdk with version “0.47.3.122” and Java 8 for quite some time now and did not face this issue and the problem has suddenly started from today morning.
The error seems to occur when establishing connection to purecloud using the client credentials (client Id, secret and grant type). Hence we are unable to even call the purecloud queries through the Java sdk.
I have now changed to the latest version of platform v2 - 28.0.0 and I am still having the same issue..
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:2023)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1125)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:394)
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:353)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:141)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
at com.mypurecloud.sdk.v2.connector.apache.ApacheHttpClientConnector.invoke(ApacheHttpClientConnector.java:71)
at com.mypurecloud.sdk.v2.ApiClient.getAPIResponse(ApiClient.java:490)
at com.mypurecloud.sdk.v2.ApiClient.invoke(ApiClient.java:570)
at com.mypurecloud.sdk.v2.api.UsersApi.getUsers(UsersApi.java:1992)
at com.mypurecloud.sdk.v2.api.UsersApi.getUsers(UsersApi.java:1946)
This issue is due to Java 6 not supporting SNI. You will need to update your app to use java 7 or 8 for the Apache HTTP client to be able to connect to the PureCloud servers as we now require SNI support in client libraries. This information should also be relayed via your support ticket.