如何使用Java Keytool将PKCS12 openssl密钥库转换为JKS密钥库

时间:2017-03-03 11:15:13

标签: java openssl keytool jsse

步骤我制作密钥:

  1. 创建私钥

    openssl genrsa -des3 -out client.key 2048
    
  2. 生成自签名证书

    openssl req -key client.key -new -x509 -days 365 -out client.crt -subj "/C=xxx/ST=yyy/L=zzz/O=aaa/CN=localhost"
    
  3. 将PEM转换为PKCS12

    openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12
    
  4. 使用Java Keytool将PKCS12 openssl密钥库转换为JKS密钥库

    keytool -importkeystore -destkeystore client_keystore.jks -deststoretype jks -deststorepass 1234567abc -srckeystore client.p12 -srcstoretype pkcs12 -srcstorepass 1234567abc
    
  5. 我收到了错误:

    keytool error: java.io.IOException: failed to decrypt safe contents entry:
    javax.crypto.BadPaddingException: Given final block not properly padded
    

    如何修复它,我哪里错了?

2 个答案:

答案 0 :(得分:1)

一个问题是并非所有PCKS12提供商都完全兼容100%。我遇到了同样的错误,我能够通过将srcstoretype从'PKCS12'更改为'BCPKCS12'来修复它

这可能有所帮助:https://cryptosense.com/bouncycastle-keystore-security/

答案 1 :(得分:0)

 -srcstorepass 1234567abc

创建PKCS#12文件时未指定密码。 你是从哪里得到的?

您可以使用keytool -genkey选项作为一行进行整个过程。