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

Maulin Vasavada commented on CASSANDRA-18508:
---------------------------------------------

Hi [~jeetkundoug] I've completed all the tests for JMX SSL - with 
EncryptionOptions and with Systems SSL settings. At this point I think all the 
functional/test requirements should be good. There are certain TODOs and 
documentation work that I need to work on but otherwise this is mostly it. All 
the changes are here for the review 
[https://github.com/maulin-vasavada/cassandra/pull/2/files] . I would still 
revisit all file naming conventions etc because there has been a lot of 
refactoring to get to this stage and I need to take a pause and give a fresh 
perspective to the changes. I still need to validate the 
{{ResourceLeakTest#looperJmxTest locally but I should be able to get to it in 
couple of days.}}

The only thing which is not clear to me still is - from the local tests why do 
I've to set client SSL socket factory 
[explicitly|https://github.com/maulin-vasavada/cassandra/pull/2/files#diff-da765e1bf3993569af1ee4e89f8201ea57adb2f7ccfcca7fa92a1907e7a88391R93]
 ? Will dig into it more but is it because everything is local in the same JVM 
and because of that it doesn't serialize the client factory at all?

> Sensitive JMX SSL configuration options can be easily exposed
> -------------------------------------------------------------
>
>                 Key: CASSANDRA-18508
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-18508
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Feature/Encryption, Local/Config
>            Reporter: Anthony Grasso
>            Assignee: Maulin Vasavada
>            Priority: Normal
>             Fix For: 5.x
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> We need a way to specify sensitive JMX SSL configuration options to avoid 
> them being easily exposed.
> When encrypting the JMX connection the passwords for the key and trust stores 
> must be specified using the {{javax.net.ssl.keyStorePassword}} and 
> {{javax.net.ssl.trustStorePassword}} options respectively in the 
> _cassandra-env.sh_ file. After Cassandra is started it is possible to see the 
> passwords by looking the running process ({{ps aux | grep "cassandra"}}).
> Java 8 has the ability to specify a configuration file that can contain these 
> security sensitive settings using the {{com.sun.management.config.file}} 
> argument. However, despite what the documentation 
> ([https://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html#gdevf])
>  says, both the {{com.sun.management.jmxremote}} and 
> {{com.sun.management.jmxremote.port}} arguments need to be defined in the 
> _cassandra-env.sh_ for the JVM to read the contents of the file.
> The problem with defining the {{com.sun.management.jmxremote.port}} argument 
> is it conflicts with the {{cassandra.jmx.remote.port}} argument. Even if the 
> port numbers are different, attempting an encrypted JMX connection using 
> {{nodetool}} fails and we see a {{ConnectException: 'Connection refused 
> (Connection refused)'}} error.
> One possible way to fix this is to introduce a new option that would allow a 
> file to be passed containing the JMX encryption options.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to