多个密钥库与多个密钥和 export/import 个密钥

Multiple Keystores vs Multiple Keys and export/import of keys

我正在为不同的客户开发多个 Android 应用程序。我为我的客户管理完整的开发生命周期,包括开发和发布到 Google Play。

我担心我应该如何签署我为客户制作的申请。现在,我有 1 个密钥库,我为每个客户端创建了自己的私钥。

我担心的是,如果有一天客户想要使用他们的 Android 应用程序并在没有我的情况下自行管理它,我需要给他们他们的私钥,以便他们可以发布更新到应用程序。

我的问题是,是否可以仅使用 1 个密钥库来执行此操作,并以某种方式从密钥库中导出属于某个客户端的私钥并将其提供给他们,或者我应该为每个客户端创建一个密钥库?如果前者可以,那么技术上是怎么做到的?

对我来说最理想的场景是能够将单个私钥从我的密钥库导出到另一个密钥库,并且能够在不影响密钥有效性的情况下更改该密钥的密码,所以它仍然可以用于更新它在未来制作的应用程序。

您可以使用名为 keytool 的程序将私钥导入或导出到 PKCS#12 (.p12) 文件中:

keytool -importkeystore -srckeystore existing-store.jks -destkeystore new-store.p12 -deststoretype PKCS12

此页面列出了密钥库可能实现的许多功能,即。更改其格式,并导出单个键:

http://www.startux.de/index.php/java/44-dealing-with-java-keystoresyvComment44

还有一个名为 Keystore Explorer 的应用程序可以执行相同的工作但使用 GUI :

http://keystore-explorer.sourceforge.net/

您可以更改密码,而不影响签名能力:

keytool -keypasswd -alias "key name" -keypass "old password" -new "new password" -keystore "keystore path"

这意味着,当您的客户想要从您的密钥库中获取他们的密钥时,只需将其导出即可。