【发布时间】:2022-08-11 20:47:42
【问题描述】:
我想上传一个新应用到华为应用程序库。为此,您必须上传一个 .pem 文件。根据 Android 和华为的文档,这样做是这样的:
keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
但是,当我尝试对使用 Android Studio 生成的全新 .jks 文件执行此操作时,我得到: \"keytool 错误:java.io.IOException:无效的密钥库格式\"
不过,它适用于其他较旧的 .jks 文件。
我不知道该怎么做。我能找到的最好的是“Android Studio 现在在 JDK 11 上运行”;但我不知道为什么这会使 keytool 无法读取 jks。
我试过了:
- 在我的 Mac 上更新 Java(Java 8,更新 291)
- 更新到最新的android studio(Android Studio Chipmunk | 2021.2.1 Patch 1)
更新: 按照 Robert 的建议,我下载了 keystore-explorer,发现 \'.jks\' 实际上是一个 .p12 文件。
一旦我弄清楚如何从中取出 .pem 就会进行调查和更新。
-
您确定该文件是 JavakeyStore 文件而不是 PKCS#12 (.p12) 文件吗?大约一年以来,Java 11+ 现在使用 AES 而不是 3DES 加密 PKCS#12 文件。如果使用 3DES,旧版本的 Java 只能解密此类文件。我会尝试使用带有集成 JRE 的版本使用keystore-explorer.org 打开文件。它将显示文件是什么文件类型。
-
嗨@罗伯特!我下载了密钥库资源管理器并打开了文件。它确实是一个 PKCS#12 文件,但我按照此处记录的步骤制作文件 developer.android.com/studio/publish/app-signing#sign_release... 他们告诉您在文件名中使用 .jks。我会更新我的问题以反映所有这些,然后看看如何从 .p12 获取 .pem!
-
如果您已在 Keystore Explorer 中打开该文件,则只需更改密钥库类型并将其保存为 JKS 文件即可。然后文件扩展名和内容与您匹配,您的命令应该可以正常工作。
标签: java android pem huawei-developers jks