Ошибка 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 на каждом узле, чтобы указать хранилище ключей для этого узла и пользователя.
- перезагрузите кассандру.
Для простоты вы можете иметь тот же траст, который будет содержать все сертификаты для всех узлов в кластере.