【问题标题】:How is the alias name used in Java KeyStore class?Java KeyStore 类中如何使用别名?
【发布时间】:2020-07-22 23:50:53
【问题描述】:

类 KeyStore 有一个名为 setCertificateEntry(alias, certificate) 的方法。我看到的大多数客户端示例都使用“ca”作为别名。服务器是否在客户端-服务器握手期间自动请求“ca”?如果我使用“abc”而不是“ca”,会发生什么?问候。

【问题讨论】:

    标签: java android ssl ssl-certificate


    【解决方案1】:

    别名实际上只是您正在使用的密钥库的本地名称。它用于标识密钥库中的条目,因此您不能将它重复用于两个条目,但它可以是您喜欢的任何内容(尽管我必须承认我从未尝试过使用非 ASCII 字符,并且只有官方信任库使用小写字母或数字)。

    documentation 还说:

    别名是否区分大小写取决于实现。为了避免出现问题,建议不要在 KeyStore 中使用仅大小写不同的别名。

    某些密钥库实现和格式可能有更多限制或以不同方式使用该名称。例如,WINDOWS-ROOT 密钥库(它是 Windows 原生存储的前端)使用 Windows 的“友好名称”作为别名,遗憾的是它在 Windows 证书存储中不是唯一的,因此来自原生存储的一些证书可能被隐藏且不可用(它是从别名到条目的映射,加载具有相同名称的新条目替换另一个条目)。但是,这当然不应该成为 Android 的问题。

    如果您正在构建一个将用作信任库的密钥库,该信任库可能包含许多 CA,调用一个“ca”会使以后难以识别它们。 (这主要是一个管理问题,能够手动找到哪个证书。)

    如果您查看默认信任库,您将获得名称类似于这些 CA 证书的主题 DN 的别名,例如“verisignclass1g2ca”。

    对于用作密钥库(相对于信任库)并包含多个私钥条目的密钥库而言,拥有一个您能记住的标识符通常更为重要,因为这可以帮助您将应用程序配置为使用特定证书来标识自己.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-26
      • 2018-06-22
      • 1970-01-01
      • 2016-09-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多