java keytool给出“最后一块没有正确填充”

按照本Jetty指南的步骤3b,使用Keytool和OpenSSL,最后一步 ,我正在执行命令:

keytool -importkeystore -srckeystore jetty.pkcs12 -srcstoretype PKCS12 -destkeystore keystore 

当我运行命令时,我得到: keytool error: java.io.IOException: failed to decrypt safe contents entry: javax.crypto.BadPaddingException: Given final block not properly padded

你知道怎么解决这个问题吗?

在我的例子中,我已经使用我下载的Windows openSSL完成了一些步骤,以及使用CentOs6盒子上已经存在的openSSL的其他步骤。 当我在CentOs / linux盒子上完成所有步骤时,错误就消失了。

第二个也许是helcle note linux openSSL和Godaddy,注意当你开始“创建CSR”过程时,使用2048生成site.key,即:

openssl genrsa -des3 -out site.key 2048

—————–更新——————

我认为这个错误与我在步骤中做出的密码问题有关。

一个人做了之后:

 openssl pkcs12 -export -inkey jetty.key -in cert-chain.txt -out jetty.pkcs12 

工具提示,输入导出密码:

输入的密码必须在下一步中使用,我所做的是:

 java -classpath jetty-util-6.1.19.jar:jetty-6.1.19.jar org.mortbay.jetty.security.PKCS12Import jetty.pkcs12 keystore 

但是根据这个文档 ,该步骤显然可能同样如下:

 keytool -importkeystore -srckeystore jetty.pkcs12 -srcstoretype PKCS12 -destkeystore keystore 

我也遇到过类似的问题。 我终于意识到目标密钥库也有一个密钥密码。 所以我不得不使用额外的参数’destkeypass’来成功导入密钥。