[ https://issues.apache.org/jira/browse/CASSANDRA-10391?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16134214#comment-16134214 ]
Eduard Tudenhoefner commented on CASSANDRA-10391: ------------------------------------------------- This should be fixed with CASSANDRA-11708 > sstableloader fails with client SSL enabled with non-standard > keystore/truststore location > ------------------------------------------------------------------------------------------ > > Key: CASSANDRA-10391 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10391 > Project: Cassandra > Issue Type: Bug > Components: Tools > Environment: [cqlsh 4.1.1 | Cassandra 2.0.14.425 | DSE 4.6.6 | CQL > spec 3.1.1 | Thrift protocol 19.39.0] > [cqlsh 5.0.1 | Cassandra 2.1.8.689 | DSE 4.7.3 | CQL spec 3.2.0 | Native > protocol v3] > Reporter: Jon Moses > Assignee: Andrew Hust > > If client SSL is enabled, sstableloader is unable to access the keystore and > truststore if they are not in the expected locations. I reproduce this issue > providing {{-f /path/to/cassandra.yaml}} as well as manually using the > {{-ks}} flag with the proper path to the keystore. > For example: > {noformat} > client_encryption_options: > enabled: true > keystore: /var/tmp/.keystore > {noformat} > {noformat} > # sstableloader -d 172.31.2.240,172.31.2.241 -f > /etc/dse/cassandra/cassandra.yaml Keyspace1/Standard1/ > Could not retrieve endpoint ranges: > java.io.FileNotFoundException: /usr/share/dse/conf/.keystore > Run with --debug to get full stack trace or --help to get help. > # > # sstableloader -d 172.31.2.240,172.31.2.241 -ks /var/tmp/.keystore > Keyspace1/Standard1/ > Could not retrieve endpoint ranges: > java.io.FileNotFoundException: /usr/share/dse/conf/.keystore > Run with --debug to get full stack trace or --help to get help. > # > {noformat} > The full stack is: > {noformat} > # sstableloader -d 172.31.2.240,172.31.2.241 -f > /etc/dse/cassandra/cassandra.yaml --debug Keyspace1/Standard1/ > Could not retrieve endpoint ranges: > java.io.FileNotFoundException: /usr/share/dse/conf/.keystore > java.lang.RuntimeException: Could not retrieve endpoint ranges: > at > org.apache.cassandra.tools.BulkLoader$ExternalClient.init(BulkLoader.java:283) > at > org.apache.cassandra.io.sstable.SSTableLoader.stream(SSTableLoader.java:144) > at org.apache.cassandra.tools.BulkLoader.main(BulkLoader.java:95) > Caused by: java.io.FileNotFoundException: /usr/share/dse/conf/.keystore > at > com.datastax.bdp.transport.client.TClientSocketFactory.getSSLSocket(TClientSocketFactory.java:128) > at > com.datastax.bdp.transport.client.TClientSocketFactory.openSocket(TClientSocketFactory.java:114) > at > com.datastax.bdp.transport.client.TDseClientTransportFactory.openTransport(TDseClientTransportFactory.java:186) > at > com.datastax.bdp.transport.client.TDseClientTransportFactory.openTransport(TDseClientTransportFactory.java:120) > at > com.datastax.bdp.transport.client.TDseClientTransportFactory.openTransport(TDseClientTransportFactory.java:111) > at > org.apache.cassandra.tools.BulkLoader$ExternalClient.createThriftClient(BulkLoader.java:302) > at > org.apache.cassandra.tools.BulkLoader$ExternalClient.init(BulkLoader.java:254) > ... 2 more > root@ip-172-31-2-240:/tmp/foo# > {noformat}. > If I copy the keystore to the expected location, I get the same error with > the truststore. > {noformat} > # sstableloader -d 172.31.2.240,172.31.2.241 -f > /etc/dse/cassandra/cassandra.yaml --debug Keyspace1/Standard1/ > Could not retrieve endpoint ranges: > java.io.FileNotFoundException: /usr/share/dse/conf/.truststore > java.lang.RuntimeException: Could not retrieve endpoint ranges: > at > org.apache.cassandra.tools.BulkLoader$ExternalClient.init(BulkLoader.java:283) > at > org.apache.cassandra.io.sstable.SSTableLoader.stream(SSTableLoader.java:144) > at org.apache.cassandra.tools.BulkLoader.main(BulkLoader.java:95) > Caused by: java.io.FileNotFoundException: /usr/share/dse/conf/.truststore > at > com.datastax.bdp.transport.client.TClientSocketFactory.getSSLSocket(TClientSocketFactory.java:130) > at > com.datastax.bdp.transport.client.TClientSocketFactory.openSocket(TClientSocketFactory.java:114) > at > com.datastax.bdp.transport.client.TDseClientTransportFactory.openTransport(TDseClientTransportFactory.java:186) > at > com.datastax.bdp.transport.client.TDseClientTransportFactory.openTransport(TDseClientTransportFactory.java:120) > at > com.datastax.bdp.transport.client.TDseClientTransportFactory.openTransport(TDseClientTransportFactory.java:111) > at > org.apache.cassandra.tools.BulkLoader$ExternalClient.createThriftClient(BulkLoader.java:302) > at > org.apache.cassandra.tools.BulkLoader$ExternalClient.init(BulkLoader.java:254) > ... 2 more > # > {noformat} > If I copy the truststore, it finds them both, but then fails to open them due > to what I assume is a password error, even those it's present in the > cassandra.yaml. > {noformat} > # sstableloader -d 172.31.2.240,172.31.2.241 -f > /etc/dse/cassandra/cassandra.yaml --debug Keyspace1/Standard1/ > Could not retrieve endpoint ranges: > java.io.IOException: Failed to open transport to: 172.31.2.240:9160 > java.lang.RuntimeException: Could not retrieve endpoint ranges: > at > org.apache.cassandra.tools.BulkLoader$ExternalClient.init(BulkLoader.java:283) > at > org.apache.cassandra.io.sstable.SSTableLoader.stream(SSTableLoader.java:144) > at org.apache.cassandra.tools.BulkLoader.main(BulkLoader.java:95) > Caused by: java.io.IOException: Failed to open transport to: 172.31.2.240:9160 > at > com.datastax.bdp.transport.client.TDseClientTransportFactory.openTransport(TDseClientTransportFactory.java:137) > at > com.datastax.bdp.transport.client.TDseClientTransportFactory.openTransport(TDseClientTransportFactory.java:111) > at > org.apache.cassandra.tools.BulkLoader$ExternalClient.createThriftClient(BulkLoader.java:302) > at > org.apache.cassandra.tools.BulkLoader$ExternalClient.init(BulkLoader.java:254) > ... 2 more > Caused by: org.apache.thrift.transport.TTransportException: Error creating > the transport > at > org.apache.thrift.transport.TSSLTransportFactory.createSSLContext(TSSLTransportFactory.java:201) > at > org.apache.thrift.transport.TSSLTransportFactory.getClientSocket(TSSLTransportFactory.java:165) > at > com.datastax.bdp.transport.client.TClientSocketFactory.getSSLSocket(TClientSocketFactory.java:136) > at > com.datastax.bdp.transport.client.TClientSocketFactory.openSocket(TClientSocketFactory.java:114) > at > com.datastax.bdp.transport.client.TDseClientTransportFactory.openTransport(TDseClientTransportFactory.java:186) > at > com.datastax.bdp.transport.client.TDseClientTransportFactory.openTransport(TDseClientTransportFactory.java:120) > ... 5 more > Caused by: java.io.IOException: Keystore was tampered with, or password was > incorrect > at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:772) > at > sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:55) > at java.security.KeyStore.load(KeyStore.java:1445) > at > org.apache.thrift.transport.TSSLTransportFactory.createSSLContext(TSSLTransportFactory.java:179) > ... 10 more > Caused by: java.security.UnrecoverableKeyException: Password verification > failed > at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:770) > ... 13 more > {noformat} > If I specify the password on the command line, I get the same error. -- This message was sent by Atlassian JIRA (v6.4.14#64029) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org