【问题标题】:Vault initialization issue with keystore on OpenJDKOpenJDK 上的密钥库的 Vault 初始化问题
【发布时间】:2019-05-19 14:36:00
【问题描述】:

当我们从 OracleJDK 切换到 OpenJDK 时,我们面临以下问题:

[主机控制器] 09:25:41,568 INFO [org.jboss.as](MSC 服务 线程 1-6) JBAS015899: WildFly 8.2.1.Final "Tweek" 开始 [Host 控制器] 09:25:42,674 错误 [org.jboss.as.controller.management-operation](控制器启动 线程)JBAS014612:操作(“添加”)失败 - 地址:([[主机 控制器] ("host" => "master"), [主机控制器]
(“核心服务”=>“保险库”)[主机控制器]]): java.lang.RuntimeException: JBAS015804: 初始化库时出错 -- org.jboss.as.server.services.security.VaultReaderException: JBAS013313:Vault Reader 异常:[Host Controller] at org.jboss.as.server.services.security.VaultAddHandler.performRuntime(VaultAddHandler.java:82) [wildfly-server-8.2.1.Final.jar:8.2.1.Final] [主机控制器] 在 org.jboss.as.controller.AbstractAddStepHandler$1.execute(AbstractAddStepHandler.java:75) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final] [主机控制器] 在 org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:660) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final] [主机控制器] 在 org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:501) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final] [主机控制器] 在 org.jboss.as.controller.AbstractOperationContext.completeStepInternal(AbstractOperationContext.java:298) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final] [主机控制器] 在 org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:293) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final] [主机控制器] 在 org.jboss.as.controller.ModelControllerImpl.boot(ModelControllerImpl.java:324) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final] [主机控制器] 在 org.jboss.as.controller.AbstractControllerService.boot(AbstractControllerService.java:297) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final] [主机控制器] 在 org.jboss.as.host.controller.DomainModelControllerService.boot(DomainModelControllerService.java:441) [wildfly-host-controller-8.2.1.Final.jar:8.2.1.Final] [主机 控制器]在 org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:259) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final] [主机控制器] 在 java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_191] [主机 控制器] 引起: org.jboss.as.server.services.security.VaultReaderException: JBAS013313:Vault Reader 异常:[Host Controller] at org.jboss.as.security.vault.RuntimeVaultReader.createVault(RuntimeVaultReader.java:84) [wildfly-security-8.2.1.Final.jar:8.2.1.Final] [主机控制器] 在 org.jboss.as.server.services.security.VaultAddHandler.performRuntime(VaultAddHandler.java:80) [wildfly-server-8.2.1.Final.jar:8.2.1.Final] [主机控制器] ... 10 更多 [主机控制器] 引起: org.jboss.security.vault.SecurityVaultException: java.lang.RuntimeException:PBOX000140:无法获取密钥库 (/usr/jboss-8.2.0.Final/domain/vault/keystore.jceks) [主机控制器] 在 org.picketbox.plugins.vault.PicketBoxSecurityVault.init(PicketBoxSecurityVault.java:210) [主机控制器] 在 org.jboss.as.security.vault.RuntimeVaultReader.createVault(RuntimeVaultReader.java:82) [wildfly-security-8.2.1.Final.jar:8.2.1.Final] [主机控制器] ... 11 更 [Host Controller] 引起:java.lang.RuntimeException: PBOX000140:无法获取密钥库 (/usr/jboss-8.2.0.Final/domain/vault/keystore.jceks) [主机控制器] 在 org.picketbox.plugins.vault.PicketBoxSecurityVault.getKeyStore(PicketBoxSecurityVault.java:688) [主机控制器] 在 org.picketbox.plugins.vault.PicketBoxSecurityVault.init(PicketBoxSecurityVault.java:205) [主机控制器] ... 12 更多 [主机控制器] 原因: java.io.IOException:无效的密钥格式 [主机控制器] 在 com.sun.crypto.provider.JceKeyStore.engineLoad(JceKeyStore.java:856) [sunjce_provider.jar:1.8.0_191] [主机控制器] 在 java.security.KeyStore.load(KeyStore.java:1445) [rt.jar:1.8.0_191] [主机控制器] 在 org.picketbox.util.KeyStoreUtil.getKeyStore(KeyStoreUtil.java:201) [主机控制器] 在 org.picketbox.util.KeyStoreUtil.getKeyStore(KeyStoreUtil.java:151) [主机控制器] 在 org.picketbox.plugins.vault.PicketBoxSecurityVault.getKeyStore(PicketBoxSecurityVault.java:685)

[主机控制器] ... 13 更多 [主机控制器] [主机控制器] 09:25:42,682 致命 [org.jboss.as.host.controller](控制器启动 线程)JBAS010933:主机控制器启动失败 不可恢复的方式;退出。有关详细信息,请参阅以前的消息。

在 OracleJDK 中同样适用。使用与 OracleJDK 相同的密钥库文件。两个JDK版本都是8。

jdk1.8.0_121
java-1.8.0-openjdk-1.8.0.191.b12-0.el7_5.x86_64

谁能指出 OpenJDK 有什么问题?

【问题讨论】:

  • (1) 对固定格式(面向行的)计算机输出使用块引用使其完全不可读。不要添加 >,而是通过添加 4 个空格或(更容易)使用 {} 按钮来使用“代码”降价。 (2) 每种 JDK 的版本是什么? (3) 每个 JDK 的 keytool 程序是否在此密钥库上工作,或者它们给出了什么错误?

标签: java wildfly


【解决方案1】:

Vault(和凭据存储)基于 JCEKS,并且在更新 171 中 JCEKS 格式发生了变化。 请将此依赖行 <module name="sun.jdk"/> 添加到 modules/system/layers/base/org/picketbox/main

或者迁移到已经包含这个依赖的wildlfy 11

【讨论】:

    【解决方案2】:

    应用此处的解决方案时已解决的问题:https://developer.jboss.org/thread/277727

    【讨论】:

      猜你喜欢
      • 2020-12-31
      • 2020-09-09
      • 1970-01-01
      • 2012-04-28
      • 2018-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-03
      相关资源
      最近更新 更多