Hi, I referred to this link https://docs.datastax.com/en/developer/java-driver/3.0/manual/ssl/ <https://docs.datastax.com/en/developer/java-driver/3.0/manual/ssl/> to implement a simple Cassandra client using datastax driver 3.0.0 on SSL with OpenSSL options but unable to run it.
Getting generic exception as " *com.datastax.driver.core.exceptions.NoHostAvailableException" *at line mySession = myCluster.connect(); *Code snippet to setup cluster connection is below.* public void connectToCluster() { String[] theCassandraHosts = {"myip"}; myCluster = Cluster.builder().withSSL(getSSLOption()).withReconnectionPolicy(new ConstantReconnectionPolicy(2000)).addContactPoints(theCassandraHosts).withPort(10742) .withCredentials("username", "password").withLoadBalancingPolicy(DCAwareRoundRobinPolicy.builder().build()) .withSocketOptions(new SocketOptions().setConnectTimeoutMillis(800).setKeepAlive(true)).build(); try { mySession = myCluster.connect(); } catch(Exception e) { e.printStackTrace(); } System.out.println("Session Established"); } private SSLOptions getSSLOption() { InputStream trustStore = null; try { String theTrustStorePath = "/var/opt/SecureInterface/myTrustStore.jks"; String theTrustStorePassword = "mypassword"; List<String> theCipherSuites = new ArrayList<String>(); theCipherSuites.add("TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"); KeyStore ks = KeyStore.getInstance("JKS"); * trustStore = new FileInputStream(theTrustStorePath);* ks.load(trustStore, theTrustStorePassword.toCharArray()); TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); tmf.init(ks); SslContextBuilder builder = SslContextBuilder.forClient() .sslProvider(SslProvider.OPENSSL) .trustManager(tmf) .ciphers(theCipherSuites) // only if you use client authentication .keyManager(new File("/var/opt/SecureInterface/keystore/Cass.crt"), new File("/var/opt/vs/SecureInterface/keystore/Cass_enc.key")); SSLOptions sslOptions = new NettySSLOptions(builder.build()); return sslOptions; } catch (Exception e) { e.printStackTrace(); } finally { try { trustStore.close(); } catch (IOException e) { e.printStackTrace(); } } return null; } Cassandra server is running fine with client and server encryption options. Moreover I am able to run my client using JdkSSLOptions but have problem with NettySSLOptions. Has anyone implemented the NettySSLOptions for Cassandra client application? Regards, Jahar Tyagi