Ошибка keytool: java.io.FileNotFoundException: node0.cer (Нет такого файла или каталога)

Я хочу подготовить серверные сертификаты для разработки в cassandra для шифрования клиент-узел, но столкнулся с приведенной ниже проблемой при выполнении команд:

Я перехожу по этим ссылкам для установки:

https://docs.datastax.com/en/cassandra/3.0/cassandra/configuration/secureSSLClientToNode.html https://docs.datastax.com/en/cassandra/3.0/cassandra/configuration/secureSSLCertificates.html

Когда я запускаю следующую команду:

keytool -export -alias cassandra -file node0.cer -keystore cassandra.keystore

Я получаю эту ошибку:

keytool error: java.lang.Exception: Keystore file does not exist: cassandra.keystore

И при запуске ниже команды:

keytool -import -v -trustcacerts -alias node0 -file node0.cer -keystore truststore.node0

Получение этой ошибки:

keytool error: java.io.FileNotFoundException: node0.cer (No such file or directory) java.io.FileNotFoundException: node0.cer (No such file or directory)
        at java.io.FileInputStream.open0(Native Method)
        at java.io.FileInputStream.open(FileInputStream.java:195)
        at java.io.FileInputStream.<init>(FileInputStream.java:138)
        at java.io.FileInputStream.<init>(FileInputStream.java:93)
        at sun.security.tools.keytool.Main.doCommands(Main.java:1037)
        at sun.security.tools.keytool.Main.run(Main.java:368)
        at sun.security.tools.keytool.Main.main(Main.java:361)

Моя операционная система RS-Centos-7.

Может ли кто-нибудь помочь в этом?

1 ответ

Я предполагаю, что вы пытаетесь экспортировать открытую часть сертификата в отдельный файл после того, как вы сгенерировали ключ.

Итак, для первой команды

keytool -export -alias cassandra -file node0.cer -keystore cassandra.keystore

параметр -keystore возвращает хранилище ключей, созданное командой

keytool -genkey -keyalg RSA -alias node0 -validity 36500 -keystore keystore.node0

это keystore.node0.

Вторая ошибка нормальная, так как вы не создали файл node0.cer на предыдущем шаге.

Дальнейшее объяснение:

Первым шагом является генерация ключа и его сохранение в хранилище ключей. Это достигается с

keytool -genkey -keyalg RSA -alias node0 -validity 36500 -keystore keystore.node0

Эта команда генерирует пару закрытых / открытых ключей и сохраняет ее в keystore keystore.node0, используя псевдоним node0.

Вторая команда: keytool -export -alias cassandra -file node0.cer -keystore cassandra.keystore

должен экспортировать сертификат, но в нем есть неправильные параметры. Правильная команда (соотнесенная с вышеуказанной командой):

keytool -export -alias node0 -file node0.cer -keystore keystore.node0

После этого у вас должен быть node0.cer, который вы можете использовать дальше.

В основном для включения SSL между узлами Cassandra вы делаете следующее:

  • создайте хранилище ключей, содержащее пару секретный - открытый ключ для каждого из ваших узлов
  • создайте trustore, содержащий сертификаты для каждого узла в кластере
  • измените файл cassandra.yaml на каждом узле, чтобы указать хранилище ключей для этого узла и пользователя.
  • перезагрузите кассандру.

Для простоты вы можете иметь тот же траст, который будет содержать все сертификаты для всех узлов в кластере.

Другие вопросы по тегам