我做的关键步骤:
- 创建私钥
openssl genrsa -des3 -out client.key 2048
- 生成自签名证书
openssl req -key client.key -new -x509 -days 365 -out client.crt -subj "/C=xxx/ST=yyy/L=zzz/O=aaa/CN=localhost"
- 将PEM转换为PKCS12
openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12
- 使用Java Keytool将PKCS12 openssl密钥库转换为JKS密钥库
keytool -importkeystore -destkeystore client_keystore.jks -deststoretype jks -deststorepass 1234567abc -srckeystore client.p12 -srcstoretype pkcs12 -srcstorepass 1234567abc
我收到了错误:
keytool error: java.io.IOException: failed to decrypt safe contents entry:
javax.crypto.BadPaddingException: Given final block not properly padded
如何修复它,我哪里错了?
2 回答
一个问题是并非所有PCKS12提供商都完全兼容100% . 我遇到了同样的错误,我可以通过将srcstoretype从'PKCS12'更改为'BCPKCS12'来修复它
这可能会有所帮助:https://cryptosense.com/bouncycastle-keystore-security/
创建PKCS#12文件时未指定密码 . 你是从哪里得到的?
您可以使用
keytool -genkey
选项作为单行执行整个过程 .