Certificate keytool-导入失败,错误为“;未能从回复中建立链;

Certificate keytool-导入失败,错误为“;未能从回复中建立链;,certificate,keytool,ca,Certificate,Keytool,Ca,我有一个密钥库,它只包含1个密钥对(foo)。根据该密钥对,我生成了一个csr,由CA使用证书栏(bar是foo的颁发者)对其进行签名。我遇到的问题是,我无法使用此命令导入回密钥库中的证书foo keytool -importcert -alias foo -file foo.p7b keypass 123456 -keystore keystore.jks -storepass 123456 它因错误而失败 Failed to establish chain from reply. 如果在

我有一个密钥库,它只包含1个密钥对(foo)。根据该密钥对,我生成了一个csr,由CA使用证书栏(bar是foo的颁发者)对其进行签名。我遇到的问题是,我无法使用此命令导入回密钥库中的证书foo

keytool -importcert -alias foo -file foo.p7b keypass 123456 -keystore keystore.jks -storepass 123456
它因错误而失败

Failed to establish chain from reply.
如果在我的密钥库中添加公共证书栏,那么它可以正常工作

因此,人们会简单地认为我绝对需要在我的密钥库中插入公共证书栏,但这里困扰我的是,如果我使用密钥库资源管理器在我的密钥库中导入证书foo(它只包含密钥对foo),那么它就可以正常工作。换句话说,我可以使用密钥库资源管理器(“导入CA应答”)导入证书,但不能使用keytool


有人知道我做错了什么吗?

密钥库资源管理器的首选项(“信任检查”)中有一个设置,您可以在其中启用/禁用对受信任CA证书的检查。默认情况下,此检查处于禁用状态,这就是为什么您会看到keytool和KSE之间的差异。在许多情况下,导入证书时检查证书链毫无意义。因此,我更喜欢keystoreexplorer的默认行为。谢谢,真的很有帮助。有没有办法绕过keytool的“信任检查”?我的意思是,我可能错了,但我猜密钥存储库资源管理器正在调用keytool来执行命令,所以应该有一种方法在命令行中执行相同的操作……不,密钥存储库资源管理器没有调用keytool。您可以使用KSE执行许多在密钥池中不可能执行的操作(例如私钥导出、Java和OpenSSL密钥格式之间的转换、在链中附加/删除证书等)。确定。谢谢你的帮助