【问题标题】:Unable to add Root and Intermediate Certificate to Keystore无法将根证书和中间证书添加到密钥库
【发布时间】:2021-06-15 06:57:41
【问题描述】:

我在将根证书和中间证书附加到我的 SSL 证书时遇到问题。请看下面的步骤。

  1. 使用自签名证书 jira.corp.net 创建名为 jira.corp.net.jks 的 Java 密钥库
  2. 创建 CSR 以获取 jira.corp.net 的 CA 签名证书
  3. 收到 CA 签名证书并通过 Keystore Explorer 中的 Import Reply 选项将 jira.corp.net 导入 jira.corp.net.jks
  4. 附加中间证书和根证书

以上步骤效果很好。现在,由于我的应用程序需要不同密钥库 cacerts 中的签名证书,我导入了签名证书。但是现在我没有附加中间证书和根证书的选项。因此,我收到以下错误,

sun.security.validator.ValidatorException:PKIX 路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException:无法 找到请求目标的有效认证路径

我了解,由于证书请求是在不同的密钥库中创建的,因此附加选项不可用。但是这种情况下如何导入根证书和中间证书呢?

我检查了许多博客,但无法正常工作。如果有人知道如何修复,请提出建议。

谢谢!

【问题讨论】:

  • 您没有在cacerts 中添加您的签名证书,您需要使用keytool -importcert 命令将CA 证书添加到其中。如果您使用的是 KeyStore-Explorer,则有一个打开 cacerts 文件的快捷方式选项,我认为它称为“文件 > 特殊打开”,并在其中使用“添加受信任的证书”导入 CA 证书。
  • @always_a_rookie 感谢您的回复。当我说签名证书时,它仅由 CA 机构提供。问题是我只能添加基础证书,但不能添加中间证书和根证书。我没有附加 CA 证书的选项。
  • 当您将来自 CA 的签名证书添加到您的原始密钥库时,您执行了“附加 CA 证书”,您在第 3 点和第 4 点中已经这样做了。因为您现在正在尝试添加 CA 证书对于cacerts,您需要信任它,而不是附加它。在 KeyStore-Explorer 中打开 cacerts 文件后,查找“添加可信证书”选项。

标签: ssl ssl-certificate keystore root-certificate


【解决方案1】:

您好,我通常使用 openssl 生成根 CA,但从未使用 keytools 将其导入 cacerts。您可以使用我出于绝望而制作的这个应用程序(它是一个 Java 11 应用程序)来生成它:

https://github.com/kendarorg/JavaCaCertGenerator

其唯一目的是以“适合”cacerts 的形式替换私钥和根证书的生成。从那里您可以为地址生成各种证书并在默认 cacert 中导入根 CA

【讨论】:

    猜你喜欢
    • 2018-01-24
    • 1970-01-01
    • 2013-04-10
    • 1970-01-01
    • 2017-02-05
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 2017-12-06
    相关资源
    最近更新 更多