gpt4 book ai didi

java - 新手 keytool 命令——如何更新已添加到 keystore 的证书?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:04:51 60 4
gpt4 key购买 nike

我有一个用于我的 Linux 电子邮件服务器 exim 的自签名证书。为了使我的 Java 函数能够通过 GlassFish 访问此电子邮件服务器,我最初发布了:

# keytool -importcert -v -noprompt -alias mail.mycompany.com -file /path/to/mail.mycompany.com.der -keystore /path/to/config/cacerts.jks -storepass changeit
Certificate was added to keystore

这工作正常,直到证书过期。我必须创建一个新的自签名证书,现在 Java 给出错误 PKIX path validation failed … path does not chain with any of the trust anchors .

为了尝试解决这个问题,我派生了一个新的 mail.mycompany.com.der来自新的 exim 证书的文件(如最初所做的那样)。但是当我发出上面的 keytool 命令(如最初所做的那样)时,它给出了错误 Certificate not imported, alias <mail.mycompany.com> already exists.

我认为问题在于我无法使用相同的 keytool 命令。我需要使用不同的证书,它不会将证书添加到 keystore ,而是用更新的版本更新已有的证书。任何人都可以为我指出该命令的正确方向吗?

顺便说一句,我是否遗漏了一些自动化流程?也就是说,证书一直都过期......这是否意味着 IT 管理员需要始终使用这样的代码手动用新证书更新 keystore ?或者,这可以以某种方式自动化吗?

最佳答案

可能最简单的方法是让 keytool 删除原始证书并生成具有相同信息的新证书。解决这个问题的一个好方法是安装 EJBCA,如果您有一个可以备用的小型 VM。它有点笨拙,但 EJBCA 是一个用 Java 编写的免费开源 CA 服务器。您可以创建自己的假 CA 证书、用户证书、服务器证书等,它们都具有信任链。此外,当您在证书过期后重新颁发证书时,它非常适合为您快速生成新的 JKS 文件。

删除:

keytool -delete -keystore myfile.jks -alias 'alias_from_keytool_-list'

关于java - 新手 keytool 命令——如何更新已添加到 keystore 的证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20572100/

60 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com