【问题标题】:java keytool giving "final block not properly padded"java keytool给出“最终块未正确填充”
【发布时间】:2012-03-03 11:06:37
【问题描述】:

根据step 3b of this Jetty guide for using Keytool and OpenSSL, last step,我正在执行命令:

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

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

【问题讨论】:

    标签: java ssl-certificate


    【解决方案1】:

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

    【讨论】:

    • 这就是我的原因!谢谢。 (keytool -importkeystore -srckeystore keystore.p12 -srcstoretype pkcs12 -destkeystore keystore.jks -destkeypass passphrase -deststoretype JKS)
    【解决方案2】:

    就我而言,我已经使用我下载的 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
    

    但是根据this documentation,这一步显然同样是:

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

    【讨论】:

    • 你不妨避免转换,在 Jetty 中使用PKCS12 作为keystoreType
    猜你喜欢
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    • 2011-05-16
    • 2015-07-01
    • 2014-05-29
    • 1970-01-01
    • 2012-05-12
    相关资源
    最近更新 更多