Использование cqlsh с ssl

Я включил шифрование ssl на своем узле cassandra и пытаюсь понять, как подключиться к моему узлу, используя cqlsh с ssl:

Когда я запускаю ./cqlsh --ssl, я получаю следующую ошибку:

Validation is enabled; SSL transport factory requires a valid certfile to be specified. Please provide path to the certfile in [ssl] section as 'certfile' option in /root/.cassandra/cqlshrc (or use [certfiles] section) or set SSL_CERTFILE environment variable.

Я перешел по ссылке на https://docs.datastax.com/en/cassandra/2.1/cassandra/security/secureCqlshSSL_t.html:

[authentication]
username = fred
password = !!bang!!$

Я храню в корневой папке, чтобы любой пользователь мог войти в систему и получить доступ к общей папке (а не в моем пользовательском каталоге). Однако каким будет пароль в этом случае? Мне нужно поставить свой пароль?!

certfile = ~/keys/node0.cer.pem

Нужно ли мне добавить этот файл сертификата в хранилище доверенных сертификатов cassandra, или я могу просто добавить сам сертификат узлов cassandra?

Я использую Кассандру 2.2.7.


person user1692342    schedule 21.10.2016    source источник


Ответы (1)


Есть несколько вещей, необходимых для этой работы:

Однако каким будет пароль в этом случае? Мне нужно поставить свой пароль?!

Внутри вашего файла cqlshrc это относится к имени пользователя и паролю для аутентификации/авторизации. Вам действительно не нужно добавлять его сюда. Если вы этого не сделаете, не забудьте указать флаги -u username -p password в командной строке cqlsh.

Нужно ли мне добавить этот файл сертификата в хранилище доверенных сертификатов cassandra, или я могу просто добавить сам сертификат узлов cassandra.

Для SSL от клиента к узлу вам не нужно использовать хранилище доверенных сертификатов.

Если вы выполнили шаги, описанные в этом документе выше, у вас уже должна быть часть закрытого ключа сертификата в вашем файле хранилища ключей. Затем вы бы экспортировали общедоступную часть этого сертификата в файл. Затем вы должны были преобразовать этот файл в файл PKCS12 для использования с cqlsh. Судя по именам файлов, которые вы используете выше, похоже, вы это сделали.

В качестве примера, вот пример файла cqlshrc, который должен подключаться к кластерам 2.2.x:

[connection]
factory = cqlshlib.ssl.ssl_transport_factory

[ssl]
certfile = ~/certs/dev-cluster1.cer.pem
validate = false

[authentication]
username = cassuser
password = 12345

Убедитесь, что вы устанавливаете ssl_transport_factory.

person Aaron    schedule 21.10.2016
comment
Интересно, что если мое имя пользователя и пароль неверны, он все еще работает! Но если его нет, то все равно запрашивает логин, пароль. Как вы думаете, в чем может быть проблема? - person user1692342; 22.10.2016