[ 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