【问题标题】:keytool error: java.lang.Exception: Public keys in reply and keystore don't match errors when importing crtkeytool 错误:java.lang.Exception:回复中的公钥和密钥库在导入 crt 时不匹配错误
【发布时间】:2020-06-18 19:55:49
【问题描述】:

在开始之前,我已经查看了另外 2 个问题:

keytool error: java.lang.Exception: Public keys in reply and keystore don't match

java.lang.Exception: Public keys in reply and keystore don't match

但我相信错误出现在我生成提交给我的提供商 (Digicert) 的 csr 的方式上。我将在下面详细说明我的命令,请注意这是我们部门一直这样做的方式,到目前为止,我不明白为什么这不起作用(我也完全没有能力做系统管理的事情,但是这个落在我身上)

首先 - 生成密钥库

keytool -genkey -alias aliasItem -keyalg RSA -sigalg SHA256withRSA -keysize 2048 -keypass <password> -dname "CN=server.domain.whatever, OU=IT, O=SOME NAME, L=City ST=State C=COUNTRY" -keystore keycerts -storepass <password>

出于安全考虑,我更改了您可能认为的重要项目。之后:

keytool -keycerts -keyalg RSA -sigalg SHA256withRSA -v -alias aliasItem -file outputfile.csr -keystore keycerts 

获得 csr 后,我将其提交给我的提供商,在这种情况下没有复制/粘贴错误,因为我直接导入文件。他们提供了两个 .crt 文件,一个来自服务提供商,一个用于我请求它的服务器。在我将这些文件移动到我的服务器并尝试将服务提供商的 .crt 导入到密钥库后,我收到一个错误,这是我用于将 .crt 导入到密钥库的命令:

keytool -import -v -alias aliasItem -file <Provider>.crt -keystore keycerts

哪个输出错误:

keytool error: java.lang.Exception: Public keys in reply and keystore don't match
java.lang.Exception: Public keys in reply and keystore don't match
        at sun.security.tools.KeyTool.establishCertChain(KeyTool.java:2688)
        at sun.security.tools.KeyTool.installReply(KeyTool.java:1940)
        at sun.security.tools.KeyTool.doCommands(KeyTool.java:855)
        at sun.security.tools.KeyTool.run(KeyTool.java:194)
        at sun.security.tools.KeyTool.main(KeyTool.java:188)

我现在已经尝试更改脚本的某些部分总共 8 次,所有这些都使用我提供的注释和文档,但没有任何积极的结果。令我感到奇怪的是,这台服务器在所有方面都与我们的另一台测试服务器相同,我之前已经这样做了,没有任何问题。我仍在尝试做不同的事情来解决我的问题,但由于我在这方面的知识有限,我相信我从一开始就做的事情可能是错误的。

我们将不胜感激。

【问题讨论】:

    标签: ssl ssl-certificate redhat system-administration


    【解决方案1】:

    生成汽车的第二个命令似乎不正确,因为“-keycerts”是一个非法参数。 IT 必须是“-certreq”。

    现在,错误表明私钥与您尝试安装的证书不匹配。请检查以下内容

    a) 请确保您尝试使用与生成 csr 相同的密钥库文件

    b) 请在导入时检查您是否使用了正确的别名。别名应与您在生成密钥库文件时提到的匹配。

    c) 请确保您正在导入正确的服务器证书,而不是中间证书或根证书。 Digicert 必须为您提供所有三个文件,即 Server 证书(此证书的 CN 必须与您生成 csr 文件时的 CN 匹配,这是需要导入的)、Intermediate 和 root。

    如果上述步骤不起作用,那么您必须生成新的 csr 和密钥库文件并要求 Digicert 重新颁发证书。他们会免费为您做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-11
      • 2013-09-25
      • 2020-10-02
      • 1970-01-01
      • 2017-12-03
      • 2011-06-22
      • 1970-01-01
      相关资源
      最近更新 更多