我们可以在密钥库中加载多个证书和密钥吗?

我们可以在密钥库中加载多个证书和密钥吗?

是否始终只需要加载对(即证书和密钥)?

如果密钥库具有多个证书和密钥,当Java SSL尝试将连接建立为服务器时,将选择哪个证书和密钥?

虽然这取决于KeyStore类型,但通常可以在一个商店中存储多个私钥和证书。

基于Java的服务器使用哪种密钥和证书组合将取决于应用程序的实现方式。 许多应用程序允许您使用别名选择给定的证书。 KeyStore中的密钥和证书getter使用alias参数进行此选择。 通常,如果未在配置中指定,则应用程序或框架将使用基于KeyStore.aliases()枚举找到的第一个合适的应用程序或框架。

例如,Tomcat在其Connector配置中使用keyAlias属性:

keyAlias:用于密钥库中的服务器证书的别名。 如果未指定,将使用密钥库中读取的第一个密钥。

关于密钥对,一些密钥库(再次,取决于类型)可用于存储SecretKey (例如DES),即共享密钥,以及公钥 – 私钥对。

您可以拥有一个包含任意数量的证书和密钥的密钥库。

如果客户端使用的密钥库中有多个证书作为其信任库,则会查找所有证书,直到找到适合的证书。 您可以查看预安装的证书,它们位于/ lib / security / cacerts中。 它只是根CA证书的一大集合。

关于我不知道的钥匙。 我认为客户端使用的密钥由与服务器提供的证书相同的CA签名,如果有多个,则使用第一个密钥。 但我不能肯定地说。