keytool错误:java.io.FileNotFoundException:node0.cer(没有这样的文件或目录)
我想用cassandra为客户端到节点的加密准备服务器证书,但在运行命令时遇到以下问题: 我将按照以下链接进行设置: 当我运行以下命令时: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 我得到这个错误:
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年过去了,他们仍然没有修复他们的文档。万分感谢