Назад | Перейти на главную страницу

Безопасность Cassandra с использованием openssl (не keytool)

Я видел документацию Cassandra. http://docs.datastax.com/en/cassandra/2.1/cassandra/security/secureSSLCertificates_t.html

Я нашел эту строку «SSL-сертификаты должны быть созданы с помощью keytool».

Но у меня есть самоподписанный ЦС (easy-rsa openSSL), который дает мне сертификаты и ключи. Я хочу использовать эти сертификаты и ключи для клиента Cassandra для безопасности узла, а затем мне нужно общаться с помощью cqlsh. Для этого требуется хранилище ключей, сертификат и ключи. Я пробовал, но не могу этого добиться.

Похоже, Cassandra использует "собственный Java" формат базы данных для хранения (хранилище ключей) для хранения криптографических ключей, сертификатов и ключей сертификатов. Управлять этой базой данных с помощью упомянутого выше инструмента довольно просто. На странице документации Oracle есть исчерпывающая документация. https://docs.oracle.com/javase/8/docs/technotes/tools/windows/keytool.html

В вашем конкретном случае вам необходимо выполнить следующие действия.

1) Импортируйте свой сертификат RootCA в доверенные центры.

keytool -import -trustcacerts -alias rootCA -file rootCA.crt -keystore keystore.jks

2) Импортируйте вашу пару ключей в базу данных хранилища. Самый простой способ с помощью keytool - преобразовать в формат pkcs12, а затем импортировать в хранилище ключей.

openssl pkcs12 -export -in mycert.pem -inkey mykey.pem > mykey.p12

Затем преобразуйте это хранилище в хранилище ключей Java:

keytool -importkeystore -srcstoretype pkcs12 -srckeystore mykey.p12 -destkeystore mykeystore.jks 

Я также могу предложить хороший инструмент для хранения ключей с графическим интерфейсом (написанный на java) http://www.keystore-explorer.org/ если вам нравится управлять им графически

Обратите внимание, что пароль хранилища ключей по умолчанию установлен на 'changeit'. Предлагаем вам изменить это.