Since I don't know what's in your keystore, or how it was generated, I
don't know how much help I can be.
You probably need "-alias <something>" on the command line, and make sure a
cert by the name "<something>" exists in your keystore. You can use
"keytool -list ..." to examine the contents.

Adam Holmberg

On Mon, Feb 2, 2015 at 4:15 AM, Lu, Boying <boying...@emc.com> wrote:

> Hi, Holmberg,
>
>
>
> I tried your suggestion and run the following command:
>
> keytool –exportcert –keystore path-to-my-keystore-file –storepass
> my-keystore-password –storetype JKS –file path-to-outptfile and
>
>
>
> I got following error:
>
> keytool error: java.lang.Exception: Alias <mykey> does not exist
>
>
>
> Do you know how to fix this issue?
>
>
>
> Thanks
>
>
>
> Boying
>
>
>
> *From:* Adam Holmberg [mailto:adam.holmb...@datastax.com]
> *Sent:* 2015年1月31日 1:12
> *To:* user@cassandra.apache.org
> *Subject:* Re: FW: How to use cqlsh to access Cassandra DB if the
> client_encryption_options is enabled
>
>
>
> Assuming the truststore you are referencing is the same one the server is
> using, it's probably in the wrong format. You will need to export the cert
> into a PEM format for use in the (Python) cqlsh client. If exporting from
> the java keystore format, use
>
>
>
> keytool -exportcert <source keystore, pass, etc> -rfc -file <output file>
>
>
>
> If you have the crt file, you should be able to accomplish the same using
> openssl:
>
>
>
> openssl x509 -in <in crt> -inform DER -out <output file> -outform PEM
>
>
>
> Then, you should refer to that PEM file in your command. Alternatively,
> you can specify a path to the file (along with other options) in your
> cqlshrc file.
>
>
>
> References:
>
> How cqlsh picks up ssl options
> <https://github.com/apache/cassandra/blob/cassandra-2.1/pylib/cqlshlib/sslhandling.py>
>
> Example cqlshrc file
> <https://github.com/apache/cassandra/blob/cassandra-2.1/conf/cqlshrc.sample>
>
>
>
> Adam Holmberg
>
>
>
> On Wed, Jan 28, 2015 at 1:08 AM, Lu, Boying <boying...@emc.com> wrote:
>
> Hi, All,
>
>
>
> Does anyone know the answer?
>
>
>
> Thanks a lot
>
>
>
> Boying
>
>
>
>
>
> *From:* Lu, Boying
> *Sent:* 2015年1月6日 11:21
> *To:* user@cassandra.apache.org
> *Subject:* How to use cqlsh to access Cassandra DB if the
> client_encryption_options is enabled
>
>
>
> Hi, All,
>
>
>
> I turned on the dbclient_encryption_options like this:
>
> client_encryption_options:
>
> enabled: *true*
>
> keystore:  path-to-my-keystore-file
>
> keystore_password:  my-keystore-password
>
> truststore: path-to-my-truststore-file
>
> truststore_password:  my-truststore-password
>
> …
>
>
>
> I can use following cassandra-cli command to access DB:
>
> cassandra-cli  -ts path-to-my-truststore-file –tspw my-truststore-password
> –tf org.apache.cassandra.thrift.SSLTransportFactory
>
>
>
> But when I tried to access DB by cqlsh like this:
>
> SSL_CERTFILE=path-to-my-truststore cqlsh –t
> cqlishlib.ssl.ssl_transport_factory
>
>
>
> I got following error:
>
> Connection error: Could not connect to localhost:9160: [Errno 0]
> _ssl.c:332: error:00000000:lib(0):func(0):reason(0)
>
>
>
> I guess the reason maybe is that I didn’t provide the trustore password.
> But cqlsh doesn’t provide such option.
>
>
>
> Does anyone know how to resolve this issue?
>
>
>
> Thanks
>
>
>
> Boying
>
>
>
>
>

Reply via email to