Java 将公共证书导入密钥库时出错

Java 将公共证书导入密钥库时出错,java,certificate,ssl-certificate,keystore,keytool,Java,Certificate,Ssl Certificate,Keystore,Keytool,我有来自CA的公共证书。我想使用此证书创建Java SSL连接。我提到了他。由此我了解到我需要将证书导入密钥库。但是,我没有从CA收到任何密钥库。我创建了一个密钥库,并尝试将公共证书导入其中。但是我得到了以下错误: keytool错误:java.lang.Exception:应答中的公钥和密钥库不匹配 我需要CA的密钥库还是我做错了什么 用于创建密钥库的命令: keytool -genkey -alias tomcat -keyalg RSA -keystore keystore.jks 用

我有来自CA的公共证书。我想使用此证书创建Java SSL连接。我提到了他。由此我了解到我需要将证书导入密钥库。但是,我没有从CA收到任何密钥库。我创建了一个密钥库,并尝试将公共证书导入其中。但是我得到了以下错误:

keytool错误:java.lang.Exception:应答中的公钥和密钥库不匹配

我需要CA的密钥库还是我做错了什么


用于创建密钥库的命令:

keytool -genkey -alias tomcat -keyalg RSA -keystore keystore.jks
用于导入证书的命令:

keytool -import -v -alias tomcat -file signed-cert.pem -keystore keystore.jks

我认为您没有正确地遵循证书登录流程。通过以下步骤检查此讨论以正确实施它们:

  • 创建密钥库
    keytool-genkey-keyalg RSA-keystore test.keystore-validity 360
    (这将生成一个密钥库和一个别名为“mykey”的密钥(DC))

  • 创建证书签名请求(CSR)。
    keytool-certreq-keyalg RSA-file test.csr-keystore test.keystore
    (这将生成一个文本CSR文件)

  • 已生成签名证书:

  • 导入的签名证书 (如果粘贴步骤3中的签名证书,请注意CRLF)
    keytool-import-alias newkey-file-keystore test.keystore
    (?重要的是,它的别名不同于步骤1(默认为“mykey”)

  • 导出用于客户端使用的公钥
    keytool-export-alias mykey-file test.publickey-keystore test.keystore

  • 在服务器系统上

  • 创建信任库
    keytool-genkey-keyalg RSA-keystore test.truststore-validity 360
    (这将生成一个密钥库和一个别名为“mykey”的密钥(DC))

  • 导入公钥-用于通过客户端测试SSL SOAP服务
    keytool-import-file test.publickey-keystore test.truststore

  • 问题是让步骤1和6中的别名默认为“mykey”。 当我将步骤6更改为:
    keytool-genkey-alias testAlias-keyalg RSA-keystore test.truststore-validity 360

    您可以使用上面的步骤7进行导入(尽管我在步骤7中添加了“
    -alias apublickey
    ”)。
    这对我很有用。

    您可以使用gui工具生成密钥库/证书,并将证书导入/导出到密钥库。

    在密钥库中导入SSL证书时,我遇到了同样的问题。在我的情况下,根CA的证书从链中丢失。我将根证书导出到一个文件中,然后手动im移植到密钥库中。

    请将别名从tomcat更改为任何其他别名,因为您正在为密钥库使用相同的别名-genkey

    能否请您更具体一点?您使用哪个命令创建密钥库以及如何导入cert?创建密钥库的命令:keytool-genkey-alias tomcat-keyalg RSA-keystore keystore.jks命令导入cert:keytool-import-v-alias tomcat-file signed-cert.pem-keystore密钥库。jks@Zeutheus您是否找到了使此工作正常的方法?我面临类似的问题,上述问题的解决方案将有所帮助。我的做法是错误的。首先创建密钥库,然后从该密钥库提取公钥重新将此公钥发送到您的CA。当他们发送回已签名的证书时,您可以将其成功导入密钥。我犯了同样的错误。该错误消息很荒谬。谢谢:D