Hi Shaurya,

On Tue, Nov 9, 2021 at 11:57 PM Shaurya Gupta <shaurya.n...@gmail.com>
wrote:

> Hi,
>
> We want to enable node-to-node SSL on a live cluster. Could it be done
> without any down time ?
>

Yup, this is definitely doable for both internode and client connections.
You will have to bounce your cassandra nodes, but you should be able to
achieve this operation without any downtime.  See server_encryption_options
in cassandra.yaml (
https://cassandra.apache.org/doc/4.0/cassandra/configuration/cass_yaml_file.html#server_encryption_options
)


> Would the nodes which have been restarted be able to communicate with the
> nodes which have not yet come up and vice versa ?
>

The idea would be to:

1. Set optional to true in server_encryption_options and bounce the cluster
safely into it.  As nodes come up, they will first attempt to connect to
other nodes via ssl, and fallback on the unencrypted storage_port.
2. Once you have bounced the entire cluster once, switch optional to false
and then bounce the cluster again.

Before 4.0, a separate port (ssl_storage_port) was used for connecting with
internode via ssl.  In 4.0, storage_port can be used for both unencrypted
and encrypted connections, and enable_legacy_ssl_storage port can be used
to maintain ssl_storage_port. Once the entire cluster is on 4.0 you can set
this option to false so storage_port is used over ssl_storage_port.

One important thing to point out is that prior to C* 4.0, Cassandra does
not hot reload keystore changes, so whenever you update the certificates in
your keystores (e.g. to avoid your certificates expiring) you would need to
bounce your cassandra instances. See:
https://cassandra.apache.org/doc/4.0/cassandra/operating/security.html#ssl-certificate-hot-reloading
for explanation on how that works.

Thanks,
Andy


>
> Regards
> --
> Shaurya Gupta
>
>
>

Reply via email to