java - 如何使用 Java Keytool 将 PKCS12 openssl keystore 转换为 JKS keystore

标签 java openssl keytool jsse

我制作 key 的步骤:

  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 keystore 转换为 JKS keystore

    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

如何解决这个问题,我哪里错了?

最佳答案

 -srcstorepass 1234567abc

您在创建 PKCS#12 文件时未指定密码。 你从哪里得到这个?

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

关于java - 如何使用 Java Keytool 将 PKCS12 openssl keystore 转换为 JKS keystore ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42577417/

相关文章:

java - keytool - 查看公钥和私钥

java - 特定 div 的页面抓取

tomcat - 在tomcat中创建自签名证书的步骤是什么?

java - 如何使用 JPQL 收集 MySQL 基本路径?

macos - 是否可以在提交到 Mac App Store 的应用程序中调用 openssl?

c# - c DES 和 C# DES 问题

ios - 适用于 iOS arm64 架构的支持 OpenSSL FIPS 的库

android - 在 Mac 上找不到 keytool

java 3d人脸识别程序

java - 如何删除 JDefinedClass 上的注释