OpenJDK上的密钥库的保险柜初始化问题

时间:2018-12-19 06:14:20

标签: java wildfly

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

  

[主机控制器] 09:25:41,568 INFO [org.jboss.as](MSC服务   线程1-6)JBAS015899:WildFly 8.2.1.Final“ Tweek”开始[主持人   控制器] 09:25:42,674错误   [org.jboss.as.controller.management-operation](控制器启动   线程)JBAS014612:操作(“添加”)失败-地址:([[主机   控制器](“主机” =>“主机”),[主机控制器]
  (“ core-service” =>“ vault”)[主机控制器]]):   java.lang.RuntimeException:JBAS015804:初始化保管库时出错–   org.jboss.as.server.services.security.VaultReaderException:   JBAS013313:Vault Reader异常:位于的[主机控制器]   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异常:位于的[主机控制器]   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个[主机控制器]造成原因: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有什么问题吗?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

Issue fixed when the solution here applied: https://developer.jboss.org/thread/277727.