Java keytool出现“final block not properly padded”错误

8
根据使用Keytool和OpenSSL的Jetty指南中第3b步骤的最后一步,我正在执行以下命令:
keytool -importkeystore -srckeystore jetty.pkcs12 -srcstoretype PKCS12 -destkeystore keystore

当我运行该命令时,出现以下错误:keytool 错误:java.io.IOException: failed to decrypt safe contents entry: javax.crypto.BadPaddingException: Given final block not properly padded。 你知道如何解决吗?
2个回答

5

我也遇到了类似的问题。最终我发现目标密钥库还指定了一个密钥密码。因此,我必须使用额外的参数“destkeypass”才能成功导入密钥。


这在我的情况下是原因!谢谢。(keytool -importkeystore -srckeystore keystore.p12 -srcstoretype pkcs12 -destkeystore keystore.jks -destkeypass passphrase -deststoretype JKS) - buildingKofi

4
在我的情况下,我使用我下载的Windows openSSL完成了一些步骤,其他步骤则是使用CentOs6系统上已存在的openSSL完成。当我在CentOs/linux系统上完成所有步骤后,该错误消失了。
其次,关于linux openSSL和Godaddy,需要注意的是,在开始“创建CSR”过程时,生成site.key时要使用2048,例如:
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

2
你最好避免转换并在Jetty中使用PKCS12作为keystoreType - Bruno

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接