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

San*_*ngh 12 android keytool jarsigner apk apksigner

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

keytool -import -alias alias_name -file cer_name.cer -storepass changeit  -keystore my_keystore.keystore
Run Code Online (Sandbox Code Playgroud)

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

Error:Execution failed for task ':packageDebug'.
> com.android.ide.common.signing.KeytoolException: Failed to read key alias_name from store "C:\Users\username\my_keystore.keystore": trusted certificate entries are not password-protected
Run Code Online (Sandbox Code Playgroud)

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

keytool -import -alias alias_name -file cer_name.cer -storepass changeit -keypass changeit -keystore my_keystore.keystore
Run Code Online (Sandbox Code Playgroud)

但仍然存在错误.

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

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my_keystore.keystore unsigned-release.apk alias_name
Run Code Online (Sandbox Code Playgroud)

得到错误:

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.
Run Code Online (Sandbox Code Playgroud)

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

bwt*_*bwt 8

* .cer文件通常仅包含证书,而不包含对APK签名所需的私钥。

列出密钥库的内容:

keytool -list -v -keystore my_keystore.keystore
Run Code Online (Sandbox Code Playgroud)

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

  • 好的-这说明了问题,但没有解决方案。 (5认同)
  • 您需要一个包含私钥的文件,例如pkcs12(通常为* .p12),您可以将其导入密钥库中 (2认同)
  • 我将 google **der** 转换为 **jks** 但由于 `trustedCertEntry` 引发错误 **原因:受信任的证书条目不受密码保护** (2认同)

Tim*_*ers 6

我强烈建议您获取Keystore Explorer。当我遇到一些密钥库和证书问题时,该程序多次挽救了我的性命。它是免费和开源的,并且易于浏览的GUI。它可以创建新的密钥对并将现有的密钥对导入到您的密钥库中。我大约3年前开始使用它,但它仍在我的dev工具文件夹中。

  • 太好了,你救了我的命。 (2认同)