【发布时间】:2015-03-23 23:09:54
【问题描述】:
我一直在尝试在运行 Datastax (DSE) 4.6 版和 Cassandra 2.0.11 的单节点集群中启用客户端到节点 ssl 通信
按照datastax文档documentation中的步骤操作后
我不断收到以下错误消息;
INFO [Thread-3] 2015-01-25 09:00:21,383 ThriftServer.java(第 135 行)正在侦听 thrift 客户端... 错误 [Thrift:1] 2015-01-25 09:00:30,486 TNegotiatingServerTransport.java(第 523 行)无法打开服务器传输。 org.apache.thrift.transport.TTransportException:javax.net.ssl.SSLException:无法识别的 SSL 消息,明文连接? 在 org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:129) 在 com.datastax.bdp.transport.server.TPreviewableTransport.readUntilEof(TPreviewableTransport.java:79) 在 com.datastax.bdp.transport.server.TPreviewableTransport.preview(TPreviewableTransport.java:55) 在 com.datastax.bdp.transport.server.TNegotiatingServerTransport.open(TNegotiatingServerTransport.java:186) 在 com.datastax.bdp.transport.server.TNegotiatingServerTransport$Factory.getTransport(TNegotiatingServerTransport.java:516) 在 com.datastax.bdp.transport.server.TNegotiatingServerTransport$Factory.getTransport(TNegotiatingServerTransport.java:405) 在 org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:196) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 java.lang.Thread.run(Thread.java:744) 原因:javax.net.ssl.SSLException:无法识别的 SSL 消息,明文连接? 在 sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:671) 在 sun.security.ssl.InputRecord.read(InputRecord.java:504) 在 sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:927) 在 sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312) 在 sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:882) 在 sun.security.ssl.AppInputStream.read(AppInputStream.java:102) 在 java.io.BufferedInputStream.fill(BufferedInputStream.java:235) 在 java.io.BufferedInputStream.read1(BufferedInputStream.java:275) 在 java.io.BufferedInputStream.read(BufferedInputStream.java:334) 在 org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:127) ... 9 更多 错误 [Thrift:1] 2015-01-25 09:00:30,513 CustomTThreadPoolServer.java(第 222 行)处理消息期间发生错误。 java.lang.RuntimeException:无法打开服务器传输:未知 在 com.datastax.bdp.transport.server.TNegotiatingServerTransport$Factory.getTransport(TNegotiatingServerTransport.java:524) 在 com.datastax.bdp.transport.server.TNegotiatingServerTransport$Factory.getTransport(TNegotiatingServerTransport.java:405) 在 org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:196) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 java.lang.Thread.run(Thread.java:744)
这是我的 cassandra.yaml 文件
client_encryption_options:
启用:真
密钥库:/home/ubuntu/.keystore
keystore_password:****
信任库:/home/ubuntu/.truststore
信任库密码:****
协议:ssl
store_type: JKS
cipher_suites:
[TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA]
创建密钥库和信任库的步骤
keytool -genkey -keyalg RSA -alias node0 -keystore .keystore(使用主机名作为名字和姓氏)
keytool -export -alias node0 -file node0.cer -keystore .keystore
keytool -import -v -trustcacerts -alias node0 -file node0.cer -keystore .truststore
我已经通过从 oracle 网站http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html 下载所需的 jar 文件来修复他们在文档中存在的 TLS_RSA_WITH_AES_256_CBC_SHA 错误
【问题讨论】:
标签: ssl cassandra datastax plaintext