Android签名错误:受信任的证书条目未受密码保护

时间:2017-11-07 07:45:54

标签: android apk keytool jarsigner apksigner

获得证书签署android unsigned release apk文件, 所以我使用命令导入了cer:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my_keystore.keystore unsigned-release.apk alias_name

但是当用android studio签署应用程序时,它会产生错误:

jarsigner: Certificate chain not found for: alias_name.  alias_name must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.

我的扣除说,因为密钥没有密码保护所以我再次尝试并使用以下方法设置密钥密码:

{{1}}

但仍然存在错误。

我也尝试过使用jarsigner的手动程序:

{{1}}

收到错误:

{{1}}

请帮助我无法获得有关Android apk签名此错误的相关帖子

3 个答案:

答案 0 :(得分:6)

* .cer文件通常只包含证书,而不是签署APK所需的私钥。

列出密钥库的内容:

keytool -list -v -keystore my_keystore.keystore

查找Entry type:行(对应的别名)。该值必须为PrivateKeyEntry,而不是trustedCertEntry

答案 1 :(得分:5)

我强烈建议您Keystore Explorer。当我遇到一些密钥库和证书问题时,这个程序不止一次地挽救了我的生命。它是免费和开源的,易于导航的GUI。它可以创建新密钥对并将现有密钥对导入密钥库。我大约3年前开始使用它,它仍然在我的文件夹中用于开发工具。

答案 2 :(得分:0)

如果你正在使用android studio,有一个非常简单的解决方案来签署apk按照以下步骤转到 Android菜单 - > 查找构建 - > 生成签名APK ... 在那个新窗口出现之后 - > 点击新建...按钮。 接下来输入如下所示的详细信息,然后点击确定 - >下一步。 enter image description here - >选择要存储.jks文件的密钥库路径以供将来使用 - > 设置所需的密码 - > 设置别名 - > 密码 - > 填写证书详细信息 - > 点击下一步

下一个窗口将显示如下屏幕截图 enter image description here

选择要签名的目录.apk将存储(否则将在 app文件夹 - > 发布中生成) - > 选择签名版 - > 点击完成

等到APK成功生成