如何解决“密钥创建时出错:”

Posted

技术标签:

【中文标题】如何解决“密钥创建时出错:”【英文标题】:How to solve "Key was created with errors:" 【发布时间】:2019-10-06 11:55:48 【问题描述】:

JKS 密钥库使用专有格式。建议迁移 到 PKCS12,这是一种使用“keytool”的行业标准格式 -importkeystore -srckeystore -destkeystore -deststoretype pkcs12"

在生成密钥时,我在使用 android studio 3.4(32 位版本)时遇到此类错误,但是当我在另一台使用 android studio 3.4(64 位)的笔记本电脑中生成相同的源代码到 apk 时版本)。它在 64 位笔记本电脑和 android studio 中运行良好。

【问题讨论】:

【参考方案1】:

我今天遇到了同样的问题,Android 似乎希望我们将密钥从 JKS 专有格式迁移到 PKCS12 格式(如警告所示)。 为此,您需要使用 Android Studio 附带的 keytool。

1。找到keytool.exe

keytool.exe 通常位于文件夹 C:\Program Files\Android\Android Studio\jre\bin 中。如果你在那里找不到 keytool,那么你必须搜索它。

2。使用 Windows cmd 导航到 jre 文件夹

在 Windows 中,打开 cmd 并键入:

cd C:\Program Files\Android\Android Studio\jre\bin

当然,如果你的keytool.exe存放在其他位置,你需要在cd后面输入正确的路径

3。更改密钥库格式

在 cmd 中您已经导航到包含 keytool.exe 的文件夹,所以现在您可以在 cmd 中输入以下命令:

keytool -importkeystore -srckeystore your_keystore_destination\your_keystore_file.jks -destkeystore your_keystore_destination\your_keystore_file.jks -deststoretype pkcs12

别忘了改变

your_keystore_destination\your_keystore_file.jks

使用正确的路径。在你的例子中它会是

D:\App Collection\App1 All in one Collection\keystorefile.jks

注意:

如果您为密钥库和密钥指定了不同的密码,则需要在步骤 3 的命令中添加 -destkeypass your_key_password

【讨论】:

尝试这个我得到一个警告:成功迁移到非 JKS/JCEKS。安全副本已保存为:path\keyStoreFile.jks.old。检查新文件仍然是 file.jks....可能出了什么问题?或者这是预期的结果?我期待看到一个 file.pcks12....谢谢大家分享... 编辑:只需在上面的第三步尝试将 .jks 扩展名替换为 .p12 扩展名,就在第二个路径(将保存新文件的路径)上,您将收到一个成功导入消息和 .p12 文件...无论如何感谢 Leon 的分享,祝大家编码愉快...【参考方案2】:

keyStore 文件所在的文件夹打开终端时,以下命令在 Mac 上对我有用:

keytool -importkeystore -srckeystore YOURKEYSTOREFILENAME -destkeystore YOURKEYSTOREFILENAME.p12 -srcstoretype JKS -deststoretype PKCS12

【讨论】:

【参考方案3】:

我只是忽略了这个错误并使用了生成的密钥。我可以毫无困难地上传我的应用程序。

【讨论】:

以上是关于如何解决“密钥创建时出错:”的主要内容,如果未能解决你的问题,请参考以下文章

云原生景观:可观察性和分析解决了什么问题?如何解决的?

如何解决 Ajax 跨域请求不到的问题

如何解决包冲突问题

如何解决包冲突问题

如何解决ajax跨域问题

MySQL 的 10048问题,如何解决?