Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
keytool错误:java.io.FileNotFoundException:node0.cer(没有这样的文件或目录)_Java_Cassandra_Centos7_Cassandra 3.0 - Fatal编程技术网

keytool错误:java.io.FileNotFoundException:node0.cer(没有这样的文件或目录)

keytool错误:java.io.FileNotFoundException:node0.cer(没有这样的文件或目录),java,cassandra,centos7,cassandra-3.0,Java,Cassandra,Centos7,Cassandra 3.0,我想用cassandra为客户端到节点的加密准备服务器证书,但在运行命令时遇到以下问题: 我将按照以下链接进行设置: 当我运行以下命令时: keytool -export -alias cassandra -file node0.cer -keystore cassandra.keystore keytool -import -v -trustcacerts -alias node0 -file node0.cer -keystore truststore.node0 我得到这个错误:

我想用cassandra为客户端到节点的加密准备服务器证书,但在运行命令时遇到以下问题:

我将按照以下链接进行设置:

当我运行以下命令时:

keytool -export -alias cassandra -file node0.cer -keystore cassandra.keystore
keytool -import -v -trustcacerts -alias node0 -file node0.cer -keystore truststore.node0
我得到这个错误:

keytool error: java.lang.Exception: Keystore file does not exist: cassandra.keystore
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)
当运行以下命令时:

keytool -export -alias cassandra -file node0.cer -keystore cassandra.keystore
keytool -import -v -trustcacerts -alias node0 -file node0.cer -keystore truststore.node0
获取此错误:

keytool error: java.lang.Exception: Keystore file does not exist: cassandra.keystore
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)
keytool错误:java.io.FileNotFoundException:node0.cer(无此类文件或目录)java.io.FileNotFoundException:node0.cer(无此类文件或目录)
位于java.io.FileInputStream.open0(本机方法)
在java.io.FileInputStream.open(FileInputStream.java:195)
位于java.io.FileInputStream。(FileInputStream.java:138)
位于java.io.FileInputStream。(FileInputStream.java:93)
位于sun.security.tools.keytool.Main.doCommands(Main.java:1037)
位于sun.security.tools.keytool.Main.run(Main.java:368)
位于sun.security.tools.keytool.Main.Main(Main.java:361)
我的操作系统是RS-Centos-7


有人能帮我吗?

我假设您在生成密钥后,正在尝试将证书的公共部分导出到一个单独的文件中

第一个命令是这样的

keytool -export -alias cassandra -file node0.cer -keystore cassandra.keystore
-keystore参数将获取使用命令创建的密钥库

keytool -genkey -keyalg RSA -alias node0 -validity 36500 -keystore keystore.node0
这是密钥库。节点0

第二个错误是正常的,因为您在上一步没有生成node0.cer文件

进一步解释:

第一步是生成密钥并将其保存到密钥库。这是通过以下方式实现的:

keytool -genkey -keyalg RSA -alias node0 -validity 36500 -keystore keystore.node0
此命令生成私钥/公钥对,并使用别名node0将其保存到keystore keystore.node0中

第二个命令是 keytool-export-alias cassandra-file node0.cer-keystore cassandra.keystore

应该导出证书,但其中有一些错误的参数正确的命令(与上述命令相关)为

keytool -export -alias node0 -file node0.cer -keystore keystore.node0
在此之后,您应该有一个node0.cer,可以进一步使用

基本上,为了在Cassandra节点之间启用SSL,您需要执行以下操作:

  • 为每个节点创建一个包含私钥-公钥对的密钥库
  • 创建包含群集中每个节点的证书的信任库
  • 更改每个节点上的cassandra.yaml文件,以指定该节点和信任方的密钥库
  • 重新启动卡桑德拉

为简单起见,您可以拥有相同的信任人,该信任人将包含群集中所有节点的所有证书。

您的回答是什么意思,请您再次检查一下?我正在运行这个命令keytool-export-alias cassandra-file node0.cer-keystore cassandra.keystore,结果出错了。3年过去了,他们仍然没有修复他们的文档。万分感谢