java keytool giving";“最后一块未正确填充”;

java keytool giving";“最后一块未正确填充”;,java,ssl-certificate,Java,Ssl Certificate,佩尔,我在执行命令: keytool -importkeystore -srckeystore jetty.pkcs12 -srcstoretype PKCS12 -destkeystore keystore 当我运行该命令时,我得到:keytool错误:java.io.IOException:未能解密安全内容条目:javax.crypto.BadPaddingException:给定的最后一个块未正确填充 你知道如何解决这个问题吗?在我的例子中,我使用下载的Windows openSSL完成

佩尔,我在执行命令:

keytool -importkeystore -srckeystore jetty.pkcs12 -srcstoretype PKCS12 -destkeystore keystore
当我运行该命令时,我得到:
keytool错误:java.io.IOException:未能解密安全内容条目:javax.crypto.BadPaddingException:给定的最后一个块未正确填充


你知道如何解决这个问题吗?

在我的例子中,我使用下载的Windows openSSL完成了一些步骤,其他步骤使用CentOs6设备上已有的openSSL完成。当我在CentOs/linux机器上执行所有步骤时,错误消失了

请注意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”才能成功导入密钥。

您最好避免转换,并在Jetty中使用
PKCS12
作为
keysteretype
。这就是我的原因!Thnx。(keytool-importkeystore-srckeystore keystore.p12-srcstoretype pkcs12-destkeystore keystore.jks-destkeypass密码短语-deststoretype jks)