[ 
https://issues.apache.org/jira/browse/CASSANDRA-9590?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14727870#comment-14727870
 ] 

Robert Stupp commented on CASSANDRA-9590:
-----------------------------------------

Patch and tests look good so far.

Some notes:
* Can you add the option {{native_transport_port_ssl}} to 
{{conf/cassandra.yaml}} (commented out, but with some words describing its 
meaning and how it relates to {{native_transport_port}})? You can use {{9142}} 
as the (commented out) standard port. Maybe also a note that it's beneficial to 
install the _Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction 
Policy Files_?
* Let startup fail, if both {{native_transport_port}} and 
{{native_transport_port_ssl}} are set but {{client_encryption_options}} is not 
enabled. It is a configuration failure. At the moment it silently just not 
starts SSL at all.
* The unit tests look good, but never start NetworkTransportService with SSL 
enabled - but that's ok as there are dtests.
* dtests unfortunately don't work on my machine. Is the {{keystone.jks}} file 
mentioned in the test source missing? (Ping me, if you need some logs or so.)

I tested the stuff manually using a self-signed cert with cqlsh and it works 
(with JCE policy files).

> Support for both encrypted and unencrypted native transport connections
> -----------------------------------------------------------------------
>
>                 Key: CASSANDRA-9590
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9590
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Stefan Podkowinski
>            Assignee: Stefan Podkowinski
>             Fix For: 2.1.x
>
>
> Enabling encryption for native transport currently turns SSL exclusively on 
> or off for the opened socket. Migrating from plain to encrypted requires to 
> migrate all native clients as well and redeploy all of them at the same time 
> after starting the SSL enabled Cassandra nodes. 
> This patch would allow to start Cassandra with both an unencrypted and ssl 
> enabled native port. Clients can connect to either, based whether they 
> support ssl or not.
> This has been implemented by introducing a new {{native_transport_port_ssl}} 
> config option. 
> There would be three scenarios:
> * client encryption disabled, {{native_transport_port}} unencrypted, 
> {{native_transport_port_ssl}} not used
> * client encryption enabled, {{native_transport_port_ssl}} not set, 
> {{native_transport_port}} encrypted
> * client encryption enabled, {{native_transport_port_ssl}} set, 
> {{native_transport_port}} unencrypted, {{native_transport_port_ssl}} encrypted
> This approach would keep configuration behavior fully backwards compatible.
> Patch proposal: 
> [Branch|https://github.com/spodkowinski/cassandra/tree/cassandra-9590], [Diff 
> cassandra-3.0|https://github.com/apache/cassandra/compare/cassandra-3.0...spodkowinski:cassandra-9590],
>  [Patch against 
> cassandra-3.0|https://github.com/apache/cassandra/compare/cassandra-3.0...spodkowinski:cassandra-9590.patch]
> DTest: 
> [Branch|https://github.com/spodkowinski/cassandra-dtest/tree/cassandra-9590], 
> [Diff 
> master|https://github.com/riptano/cassandra-dtest/compare/master...spodkowinski:cassandra-9590]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to