keytool证书生成似乎在命令行中挂起

时间:2011-12-07 18:40:34

标签: java command-line keytool

我在命令行中使用keytool可能存在问题,或者可能缺乏耐心。我成功创建了一个keyStore,并且还成功生成了证书请求。但是,当我尝试从请求生成证书时,它似乎挂起。

在命令行中,这就是我得到的全部

C:\Users\Mark\Desktop\Assignment 9>keytool -gencert -keystore myKeys\myKeys.keys
tore -alias mr -v
Enter keystore password:
Enter key password for <mr>

我没有得到新的提示,它就像在命令行上那样。所以我取消它并再次尝试几次无济于事。我也注意到在进程管理器中有一个keytool.exe在运行。我不确定这是否是一个漫长的过程,如果我应该将它留给自己一点,或者如果有一个命令原因可能会挂起命令。

5 个答案:

答案 0 :(得分:2)

我在centos 6 docker容器中遇到了这个问题

我正在运行的命令是......

keytool -import -noprompt -alias root -keystore ./out/keystore.jks -trustcacerts -file ./out/parent.crt -storepass ${jkspass};

我尝试将Java版本更改为(在容器外部运行的版本)并尝试使用-infile,如下所示...

keytool -import -noprompt -alias root -keystore ./out/keystore.jks -trustcacerts -infile ./out/parent.csr -file ./out/parent.crt -storepass ${jkspass};

但没有任何效果!增加内存也没有解决问题。 我切换到官方Java docker容器。 不工作。 我最终放弃了。

如果有人知道修复此问题,请告知。

答案 1 :(得分:1)

对此进行了绊倒 - 当然忘记提供-infile参数来规范输入CSR文件,因此keytool坐在那里等待输入。

(强制中止命令时显示错误提示: keytool error:java.io.IOException:编码字节太短。)

答案 2 :(得分:0)

不是很长 - 最多5秒你有没有尝试过: 1.查看handle.exe也许有人持有密钥库? 2.尝试另一个java版本?

答案 3 :(得分:0)

我想你的参数有误,我写这篇文章时遇到了这样的问题:

keytool -import -alias myCert -keystore "C:\Program 
Files\Java\jdk1.8.0_144\jre\lib\security\cacerts -file myCert.cer

问题是由于我打开了simbold而未关闭。要解决,我写了:

keytool -import -alias symantec -keystore "C:\Program 
Files\Java\jdk1.8.0_144\jre\lib\security\cacerts" -file symantec-root.cer

所以我相信您有一些Parateters女巫是不正确的

答案 4 :(得分:0)

我在使用keytool迁移密钥库时遇到了同样的问题。更糟糕的是,生成的密钥库没有正确的密码。

我意识到我修改了JDK中的默认安全提供程序,添加了BuncyCastle FIPS兼容。

我恢复了原始版本,一切正常。