3

I'm running Cassandra 1.2 with a three-node cluster, on Debian 7. The cluster is working fine. But I want to enable encryption for clients, as documented here: ttp://www.datastax.com/documentation/cassandra/1.2/webhelp/cassandra/security/secureSSLClientToNode_t.html

But when I restart Cassandra after making the requisite configuration change, I get this error in the log, and Cassandra crashes:

 INFO 20:12:16,734 enabling encrypted thrift connections between client and server
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.apache.commons.daemon.support.DaemonLoader.start(DaemonLoader.java:243)
Caused by: java.lang.RuntimeException: Unable to create thrift socket to /192.168.0.1:9160
        at org.apache.cassandra.thrift.CustomTThreadPoolServer$Factory.buildTServer(CustomTThreadPoolServer.java:267)
        at org.apache.cassandra.thrift.TServerCustomFactory.buildTServer(TServerCustomFactory.java:46)
        at org.apache.cassandra.thrift.ThriftServer$ThriftServerThread.<init>(ThriftServer.java:105)
        at org.apache.cassandra.thrift.ThriftServer.start(ThriftServer.java:52)
        at org.apache.cassandra.service.CassandraDaemon.start(CassandraDaemon.java:400)
        ... 5 more
Caused by: org.apache.thrift.transport.TTransportException: Could not bind to port 9160
        at org.apache.thrift.transport.TSSLTransportFactory.createServer(TSSLTransportFactory.java:117)
        at org.apache.thrift.transport.TSSLTransportFactory.getServerSocket(TSSLTransportFactory.java:103)
        at org.apache.cassandra.thrift.CustomTThreadPoolServer$Factory.buildTServer(CustomTThreadPoolServer.java:257)
        ... 9 more
Caused by: java.lang.IllegalArgumentException: Cannot support TLS_RSA_WITH_AES_256_CBC_SHA with currently installed providers
        at sun.security.ssl.CipherSuiteList.<init>(Unknown Source)
        at sun.security.ssl.SSLServerSocketImpl.setEnabledCipherSuites(Unknown Source)
        at org.apache.thrift.transport.TSSLTransportFactory.createServer(TSSLTransportFactory.java:113)
        ... 11 more
Cannot start daemon
Service exit with a return value of 5

Full log output Gist

cassandra.yaml Gist

What am I missing?

danslimmon
  • 303
  • 1
  • 8

1 Answers1

5

You need to add the java cryptography extension. See a blog post on this problem here:

http://www.pathin.org/tutorials/java-cassandra-cannot-support-tls_rsa_with_aes_256_cbc_sha-with-currently-installed-providers/

nickmbailey
  • 191
  • 2
  • Nailed it! I will link to this SF post from my Gists in case anybody else has trouble figuring this out. Thanks. – danslimmon Aug 28 '13 at 20:52