将证书导入 Wildfly 9.2 的密钥库(错误 - 密钥库不包含任何密钥)

将证书导入 Wildfly 9.2 的密钥库(错误 - 密钥库不包含任何密钥)

我有一个 p7b 证书,我将其导入 IIS 并导出到下面的 3 .cer 文件。

  1. 根证书
  2. 中间体
  3. 服务器证书.cer

然后我使用以下命令将所有 3 个 cer 成功插入到我的密钥库中。

keytool -import -alias root -keystore test.keystore -trustcacert -file root.cer

然后我运行 wildfly,出现错误“密钥库不包含任何密钥”,但当我列出密钥库时,里面有所有 3 个密钥。我不确定为什么它不起作用,希望有人能告诉我。

答案1

Java 密钥库可以包含(至少)两种不同类型的条目:

  • 包含证书的“trustedCertEntry”条目

  • 包含私钥和证书链的“privateKeyEntry”

您通过导入单独的证书创建了第一种;查看显示屏keytool -list,这些条目将被标记为trustedCertEntrySSL/TLS 服务器需要私钥和证书链,以privateKeyEntry.

我不知道 ISS,但如果您的意思是您在 IIS 中生成了密钥和 CSR,IIS 通常会将 Windows 密钥库用于某些系统帐户;我不记得是哪个了,但它应该在配置的某个地方很明显。您需要为该帐户运行 MMC+CertMgr,找到正确的条目(在证书图标左侧有一个黄色的钥匙),然后使用“是导出私钥”以“PKCS#12 (PFX)”格式将其导出到文件。在许多情况下,Java/JCE 可以直接使用 PKCS12 文件作为密钥库(而不是 JKS),但如果您需要或更喜欢转换为 JKS,请使用keytool -importkeystore(不是-importcert)。

另请参阅 near-dupe使用 CER/P7b 证书的 JBoss Https 配置失败

相关内容