我需要签署 Android 应用程序 ( .apk
)。
我有 .pfx
文件。我通过 Internet Explorer 将其转换为 .cer
文件,然后使用 keytool 将 .cer
转换为 .keystore
。然后我尝试用 jarsigner 签名 .apk
但它说 .keystore 不包含私钥。
我做错了什么?
原文由 Ola 发布,翻译遵循 CC BY-SA 4.0 许可协议
我需要签署 Android 应用程序 ( .apk
)。
我有 .pfx
文件。我通过 Internet Explorer 将其转换为 .cer
文件,然后使用 keytool 将 .cer
转换为 .keystore
。然后我尝试用 jarsigner 签名 .apk
但它说 .keystore 不包含私钥。
我做错了什么?
原文由 Ola 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
使用 JDK 1.6 或更高版本
Justin 在下面的评论中指出,仅 keytool 就可以使用以下命令执行此操作(尽管仅在 JDK 1.6 及更高版本中):
使用 JDK 1.5 或以下版本
OpenSSL 可以做到这一切。 JGuru 上的这个答案 是迄今为止我发现的最好的方法。
首先确保你已经安装了 OpenSSL 。许多操作系统已经安装了它,正如我在 Mac OS X 中发现的那样。
以下两个命令将 pfx 文件转换为可以作为 Java PKCS12 密钥库打开的格式:
请注意,第二条命令中提供的名称是您的密钥在新密钥库中的别名。
您可以使用 Java keytool 实用程序通过以下命令验证密钥库的内容:
最后,如果您需要,可以通过将上面创建的密钥库导入新的密钥库来将其转换为 JKS 密钥库: