为啥一个密钥库可以有多个证书?

Posted

技术标签:

【中文标题】为啥一个密钥库可以有多个证书?【英文标题】:Why a keystore can have multiple certificate in it?为什么一个密钥库可以有多个证书? 【发布时间】:2018-07-13 10:21:23 【问题描述】:

我想确定我非常了解 apk 签名过程。

因此,通过将 apk 链接到证书(开发人员的身份)来对 apk 进行签名,OK

它通过密钥库文件实现。

但具体来说,这个文件包含什么?那是我不太确定的地方,我发现在线资源的解释令人困惑。

据我了解:

密钥库包含一个“密钥”或“证书”列表,它们具体是一对别名/密码或(私钥/公钥)。

签署 apk 具体是将 apk 链接到特定证书,这可以通过加入正确的密钥库并输入正确的别名和密码来实现。

我说的对吗?如果是,在一个密钥库文件中存储多个证书有什么用?

提前致谢

【问题讨论】:

【参考方案1】:

Keystore 可能包含 keyAlias 列表,因为您可以为所有应用程序使用一个密钥库,因此当您发布新应用程序时,您可以使用通常的密钥库并在其中创建新的 keyAlias

【讨论】:

感谢您的回答。那么当我们创建一个密钥库并添加别名/密码/证书时,是这三样东西被加密并指定为私钥吗?这就是我们说密钥库是一组私钥的原因吗? 当然可以,keystore 本身就是一组密钥,更多信息可以阅读developer.android.com/studio/publish/app-signing#considerations

以上是关于为啥一个密钥库可以有多个证书?的主要内容,如果未能解决你的问题,请参考以下文章

Java 从 Windows 密钥库访问中间 CA?

Apache 2 中的虚拟主机上是不是可以有多个密钥/证书?

从密钥保险库将证书上载到App Service

从证书、中间证书和私钥创建密钥库 [重复]

信任库和密钥库定义

了解密钥库、证书和别名