gpt4 book ai didi

java - Keytool 更改 key 密码使用 'keypasswd' 抛出 'Alias has no key' 错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:44:41 24 4
gpt4 key购买 nike

我正在尝试更改我的 keystore 中私钥的密码。执行以下操作:

keytool -keypasswd -alias <alias name> -keystore <keystore path>

我得到:

Enter keystore password: <keystore password>

哪个返回:

keytool error: java.lang.Exception: Alias <ltsabreskey> has no key

此 keystore 是使用从密码丢失的不同 keystore 中提取的证书生成的。我正在尝试将更新推送到 Play 商店中的现有应用程序,这可以使用从提取的证书中新生成的 keystore 来完成吗?

最佳答案

注意:此答案适用于 JKSJCEKS keystore 类型,而不适用于 PKCS12

keystore 可以包含一个secret-keykey-pair(私钥+证书链)或一个证书。当你-list keystore -- SecretKeyEntry, PrivateKeyEntry and trustedCertEntry 时,你可以分别通过这些名称来识别这些类型.

其中,如果 keystore 类型是JKSJCEKS,则 SecretKeyEntry 和 PrivateKeyEntry 可以使用自己的密码(可以不同于 keystore 密码)进行保护。对于 PKCS12 keystore 类型,您不能具有不同的 keystore 和 key 密码, key 密码必须与 keystore 密码相同。

现在,您在上次声明中提到,您正在处理的 keystore 是使用从不同 keystore 导出的证书创建的。将证书添加到 keystore 有两种不同的用例。当您想要信任特定证书时,您可以只添加证书本身,这称为 truststedCertEntry。或者您可以添加/更新 key 对的证书。这意味着要添加的证书将与一个私钥相关联,这是一个 PrivateKeyEntry

您正在使用的别名是 trustedCertEntry,它不能有 keypass。因此,当您针对此别名提供 keypasswd 命令时,它将通过您看到“无 key ”错误,这就是您所看到的。


要回答您的特定问题,没有私钥就无法执行您正在执行的操作,您从原始 keystore 中提取了证书,但它没有私钥,没有私钥就无法提取私钥密码。因此,简而言之,您需要恢复您的旧 keystore ,如果您无法恢复,请按照 Play 商店指南中有关在原始 keystore 不可恢复时该怎么做的指南进行操作。

关于java - Keytool 更改 key 密码使用 'keypasswd' 抛出 'Alias has no key' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32765059/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com