keytool -genkey错误:密钥库文件不存在

时间:2011-02-07 10:14:20

标签: java certificate keystore keytool

我尝试创建一个新的自我认证的密钥库文件

我使用的命令是:

keytool -genkey -selfcert -dname "cn=My Name, ou=Orga unit" -alias selfcertified -keypass somepass -keystore keystore.jks -storepass anotherpass -validity 365

但我总是遇到这个恼人的错误:

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

我不明白为什么我收到这个错误。上面的命令应该创建一个新的密钥库,那为什么它会抱怨一个不存在的商店呢?

5 个答案:

答案 0 :(得分:19)

生成密钥对(和新的密钥库)必须作为单独的操作来完成,以便为该密钥创建自签名证书。

keytool -genkey -alias myKey -keystore store.jks
keytool -selfcert -alias myKey -keystore store.jks

答案 1 :(得分:2)

以管理员身份运行命令提示符,它将完成。

答案 2 :(得分:0)

在keytool for Java 6中,

-selfcert 选项已过时。请在此处查看“更改”的最后一部分:Java 6 Keytool

因此,对于Java 6及更高版本,将 -selfcert 替换为 -certreq

答案 3 :(得分:0)

首先使用以下命令生成上传密钥:

keytool -genkeypair -v -keystore my-upload-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

然后运行

keytool -exportcert -keystore path-to-debug-or-production-keystore -list -v 

答案 4 :(得分:0)

似乎是旧链接,但这是我尝试的-希望这对某人有帮助。 以我为例,由于在以下位置缺少.keystore文件,我运行了以下命令; keytool -genkey -alias mykey -keystore“ C:\ Users \ username.keystore” 这会在该位置创建一个.keystore文件,系统会要求您提供以下信息 您的名字和姓氏是什么? 您的单位部门的名称是什么? 您的组织名称是什么? 您所在的城市或地区的名字是什么? 您所在州或省的名字是什么? 该单位的两个字母的国家/地区代码是什么? CN = XXX,OU = XXX,O = XXX,L = XXX,ST = XXX,C = IN是否正确?

说“是”,将创建密钥库。