【问题标题】:Find the alias name in the keystore file在密钥库文件中查找别名
【发布时间】:2015-01-23 07:40:38
【问题描述】:

我在 jre/lib/security 下有一个密钥存储文件 cacerts,我使用 import 命令在其中添加了一个证书。

我的密钥库中有 50 多个证书。如何在密钥库中找到最后导入的证书的别名。我想删除我需要别名的最后添加的证书。请帮忙。

【问题讨论】:

    标签: java ssl certificate keytool


    【解决方案1】:

    您可以列出密钥库中的所有证书,例如

    在 Linux 上

    keytool -list -v -keystore keystore.jks | grep "Alias name\|Creation date"
    

    在 Windows 上

    keytool -list -v -keystore keystore.jks | findstr "Alias Creation"
    

    【讨论】:

    • 感谢 SubOptimal 的回答。我能够列出所有具有创建日期的别名。但是我找不到我昨天添加的证书。它已添加到 2014 年的所有证书。我没有看到 2015 年添加的任何证书。我使用以下方法添加了证书,让我知道它是否正确。 1) 打开 URL 并将证书从浏览器导出到桌面并保存为 root.cer。 2) 使用keytool提供的import命令将这个root.cer文件导入到cacerts keystore文件中。
    • 听起来正确。您能否添加您输入的命令以将 cer 文件导入您的问题?
    • 请找到我用来导入证书的命令。 keytool -import -file 。它提示我输入我给默认密码“changeit”的密码。然后它询问选项信任此证书(否):我给了是。它给出了消息“证书已成功添加”。
    • 那我猜可能导入失败了。您可以在没有过滤器的情况下列出并检查证书是否已导入。搜索服务器名称或您可以识别证书的内容。
    • 我试图列出没有过滤器的证书,但没有成功。请告诉我如何列出没有过滤器的证书。
    【解决方案2】:

    您是否尝试过列出所有证书。

    keytool -list -v -keystore keys.store
    

    可能是按照它们添加的顺序。

    如果您通过命令提示符或终端检查历史添加了证书。

    【讨论】:

    • 我使用命令提示符添加了证书。当我尝试再次添加证书时,它说别名已经存在。但是,当我在添加证书之前和之后检查以验证 cacerts 文件中证书的数量时,证书的数量保持不变。当我将证书导入密钥时,它给了我消息“证书已添加到密钥库”。现在 1) 我如何验证证书是否已正确添加。 2)为了删除证书我需要知道别名,如何找到我添加的证书的别名。
    【解决方案3】:

    您可以使用java.security.KeyStore 加载您的密钥库,并使用aliases() 方法获取密钥库文件中所有别名的枚举。

    java security.Keystorejava doc

    【讨论】:

      【解决方案4】:

      您可以使用此命令通过别名查找添加的证书:

      keytool -list -v -keystore keystore.jks -alias mydomain
      

      【讨论】:

        猜你喜欢
        • 2014-06-17
        • 2015-05-11
        • 2019-04-03
        • 2017-02-26
        • 2020-12-17
        • 2022-01-24
        • 2016-04-20
        • 2012-10-05
        相关资源
        最近更新 更多