【发布时间】:2013-12-13 17:07:38
【问题描述】:
我有一个用于我的 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。
为了解决这个问题,我从新的 exim 证书中派生了一个新的 mail.mycompany.com.der 文件(如最初所做的那样)。但是当我发出上述 keytool 命令时(如最初所做的那样),它给出了错误Certificate not imported, alias <mail.mycompany.com> already exists.
我认为问题在于我不能使用相同的 keytool 命令。我需要使用不同的证书,它不会将证书添加到密钥库中,而是使用较新版本更新已经存在的证书。任何人都可以为我指出该命令的正确方向吗?
顺便说一句,我是否缺少一些自动化流程?也就是说,证书一直过期......这是否意味着 IT 管理员需要始终使用这样的代码手动更新密钥库和新证书?或者,这可以通过某种方式实现自动化吗?
【问题讨论】: