【问题标题】:Not able to connect to corda nodes if devmode is false如果 devmode 为 false,则无法连接到 corda 节点
【发布时间】:2018-08-20 14:06:35
【问题描述】:

我按照此处https://docs.corda.net/permissioning.html 的指南从颁发节点证书开始,我将在其中创建密钥和证书并签署根-> 中间-> 节点-> SSL,并在它们之间链接证书以获得三个 (.jks ) 文件。

当网络处于开发模式时,我可以无错误地启动节点,但由于证书原因,它不会启动,因为网络地图无法识别我假设的节点。

考虑到这一点,我正在尝试将网络映射和整个网络更改为非开发模式环境,当我启动网络映射时,我似乎在日志中面对java.security.cert.CertPathValidatorException: Path does not chain with any of the trust anchors,但是在界面上我可以看到网络地图启动了。

当我使用相同的根密钥和中间密钥将另一个节点注册到网络中时,我遇到了错误:org.apache.activemq.artemis.api.core.ActiveMQSecurityException: AMQ119031: Unable to validate user

PS:我也试过:

关于如何在非开发环境中启动网络的任何提示?

编辑:我正在使用 keytool 来完成功能 stacktrace 网络图

警告] 2018-03-12T09:55:54,358Z [Thread-2 (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$3@4d22265c)] core.client.createTransportConnection - AMQ212007:connector.create 或 connectorFactory.createConnector 永远不应该抛出异常,实现的行为很糟糕,但无论如何我们都会处理它。 java.security.cert.CertPathValidatorException:路径不与任何信任锚链接 在 sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:153) ~[?:1.8.0_144] 在 sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java:79) ~[?:1.8.0_144] 在 java.security.cert.CertPathValidator.validate(CertPathValidator.java:292) ~[?:1.8.0_144] 在 net.corda.node.utilities.X509Utilities.validateCertificateChain(X509Utilities.kt:153) ~[corda-node-2.0.0.jar:?] 在 net.corda.node.services.messaging.VerifyingNettyConnector.createConnection(ArtemisMessagingServer.kt:506) ~[corda-node-2.0.0.jar:?] 在 org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.openTransportConnection(ClientSessionFactoryImpl.java:1036) ~[artemis-core-client-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.createTransportConnection(ClientSessionFactoryImpl.java:1076) [artemis-core-client-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.establishNewConnection(ClientSessionFactoryImpl.java:1254) [artemis-core-client-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.getConnection(ClientSessionFactoryImpl.java:891) [artemis-core-client-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.getConnectionWithRetry(ClientSessionFactoryImpl.java:795) [artemis-core-client-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.connect(ClientSessionFactoryImpl.java:238) [artemis-core-client-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl.createSessionFactory(ServerLocatorImpl.java:772) [artemis-core-client-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.server.cluster.impl.BridgeImpl.createSessionFactory(BridgeImpl.java:803) [artemis-server-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.server.cluster.impl.BridgeImpl.connect(BridgeImpl.java:860) [artemis-server-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.server.cluster.impl.BridgeImpl$ConnectRunnable.run(BridgeImpl.java:1045) [artemis-server-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:101) [artemis-commons-2.1.0.jar:2.1.0] 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_144] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_144] 在 java.lang.Thread.run(Thread.java:748) [?:1.8.0_144] [警告] 2018-03-12T09:55:54,408Z [线程 1 (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$3@4d22265c)] core.client.createTransportConnection - AMQ212007: connector.create 或 connectorFactory.createConnector 永远不应该抛出异常,实现的行为很糟糕,但无论如何我们都会处理它。 java.security.cert.CertPathValidatorException:路径不与任何信任锚链接 在 sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:153) ~[?:1.8.0_144] 在 sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java:79) ~[?:1.8.0_144] 在 java.security.cert.CertPathValidator.validate(CertPathValidator.java:292) ~[?:1.8.0_144] 在 net.corda.node.utilities.X509Utilities.validateCertificateChain(X509Utilities.kt:153) ~[corda-node-2.0.0.jar:?] 在 net.corda.node.services.messaging.VerifyingNettyConnector.createConnection(ArtemisMessagingServer.kt:506) ~[corda-node-2.0.0.jar:?] 在 org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.openTransportConnection(ClientSessionFactoryImpl.java:1036) ~[artemis-core-client-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.createTransportConnection(ClientSessionFactoryImpl.java:1076) [artemis-core-client-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.establishNewConnection(ClientSessionFactoryImpl.java:1254) [artemis-core-client-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.getConnection(ClientSessionFactoryImpl.java:891) [artemis-core-client-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.getConnectionWithRetry(ClientSessionFactoryImpl.java:795) [artemis-core-client-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.connect(ClientSessionFactoryImpl.java:238) [artemis-core-client-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl.createSessionFactory(ServerLocatorImpl.java:772) [artemis-core-client-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.server.cluster.impl.BridgeImpl.createSessionFactory(BridgeImpl.java:803) [artemis-server-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.server.cluster.impl.BridgeImpl.connect(BridgeImpl.java:860) [artemis-server-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.server.cluster.impl.BridgeImpl$ConnectRunnable.run(BridgeImpl.java:1045) [artemis-server-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:101) [artemis-commons-2.1.0.jar:2.1.0] 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_144] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_144] 在 java.lang.Thread.run(Thread.java:748) [?:1.8.0_144] [INFO] 2018-03-12T09:55:54,470Z [main] internal.Node.registerWithNetworkMapIfConfigured - 节点成功从数据库加载网络地图数据。 [INFO] 2018-03-12T09:55:54,471Z [main] messing.NodeMessagingClient.invoke - 网络地图已完成,因此从 P2P 消费者中删除过滤器。 [INFO] 2018-03-12T09:55:54,490Z [main] BasicInfo.printBasicNodeInfo - 提供网络服务:corda.notary.simple [信息] 2018-03-12T09:55:54,490Z [主要] BasicInfo.printBasicNodeInfo - 加载的 CorDapps:corda-finance-2.0.0、mokochu-p2p-0.1、corda-core-2.0.0 [INFO] 2018-03-12T09:55:54,492Z [main] BasicInfo.printBasicNodeInfo - “NetworkMap” 的节点在 8.09 秒内启动并注册 [INFO] 2018-03-12T09:55:54,495Z [main] messinging.RPCServer.start - 使用配置 RPCServerConfiguration(rpcThreadPoolSize=4, consumerPoolSize=2, producerPoolBound=4, reapInterval=PT1S) 启动 RPC 服务器 [信息] 2018-03-12T09:55:54,833Z [节点线程] plugin.PluginManager.getPlugins - 加载的插件插件 [type=CRaSHShellFactory,interface=ShellFactory] [信息] 2018-03-12T09:55:54,834Z [节点线程] plugin.PluginManager.getPlugins - 加载的插件插件 [type=GroovyLanguageProxy,interface=Language] [信息] 2018-03-12T09:55:54,835Z [节点线程] plugin.PluginManager.getPlugins - 加载的插件插件 [type=JavaLanguage,interface=Language] [信息] 2018-03-12T09:55:54,835Z [节点线程] plugin.PluginManager.getPlugins - 加载的插件插件 [type=ScriptLanguage,interface=Language] [信息] 2018-03-12T09:55:54,836Z [节点线程] plugin.PluginManager.getPlugins - 加载的插件插件 [type=JaasAuthenticationPlugin,interface=AuthenticationPlugin] [信息] 2018-03-12T09:55:54,836Z [节点线程] plugin.PluginManager.getPlugins - 加载的插件插件 [type=SimpleAuthenticationPlugin,interface=AuthenticationPlugin] [信息] 2018-03-12T09:55:54,845Z [节点线程] plugin.PluginManager.getPlugins - 初始化插件插件[type=GroovyLanguageProxy,interface=Language] [信息] 2018-03-12T09:55:54,845Z [节点线程] plugin.PluginManager.getPlugins - 初始化插件插件[type=ScriptLanguage,interface=Language] [信息] 2018-03-12T09:55:54,848Z [节点线程] plugin.PluginManager.getPlugins - 初始化插件插件 [type=CRaSHShellFactory,interface=ShellFactory] [信息] 2018-03-12T09:55:54,848Z [节点线程] plugin.PluginManager.getPlugins - 初始化插件插件 [type=JaasAuthenticationPlugin,interface=AuthenticationPlugin] [信息] 2018-03-12T09:55:54,849Z [节点线程] plugin.PluginManager.getPlugins - 初始化插件插件 [type=SimpleAuthenticationPlugin,interface=AuthenticationPlugin] [警告] 2018-03-12T09:56:01,942Z [Thread-0 (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$3@4d22265c)] core.client.createTransportConnection - AMQ212007: connector.create 或 connectorFactory.createConnector 永远不应该抛出异常,实现的行为很糟糕,但无论如何我们都会处理它。 java.security.cert.CertPathValidatorException:路径不与任何信任锚链接 在 sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:153) ~[?:1.8.0_144] 在 sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java:79) ~[?:1.8.0_144] 在 java.security.cert.CertPathValidator.validate(CertPathValidator.java:292) ~[?:1.8.0_144] 在 net.corda.node.utilities.X509Utilities.validateCertificateChain(X509Utilities.kt:153) ~[corda-node-2.0.0.jar:?] 在 net.corda.node.services.messaging.VerifyingNettyConnector.createConnection(ArtemisMessagingServer.kt:506) ~[corda-node-2.0.0.jar:?] 在 org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.openTransportConnection(ClientSessionFactoryImpl.java:1036) ~[artemis-core-client-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.createTransportConnection(ClientSessionFactoryImpl.java:1076) [artemis-core-client-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.establishNewConnection(ClientSessionFactoryImpl.java:1254) [artemis-core-client-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.getConnection(ClientSessionFactoryImpl.java:891) [artemis-core-client-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.getConnectionWithRetry(ClientSessionFactoryImpl.java:795) [artemis-core-client-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.connect(ClientSessionFactoryImpl.java:238) [artemis-core-client-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl.createSessionFactory(ServerLocatorImpl.java:772) [artemis-core-client-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.server.cluster.impl.BridgeImpl.createSessionFactory(BridgeImpl.java:803) [artemis-server-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.server.cluster.impl.BridgeImpl.connect(BridgeImpl.java:860) [artemis-server-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.core.server.cluster.impl.BridgeImpl$ConnectRunnable.run(BridgeImpl.java:1045) [artemis-server-2.1.0.jar:2.1.0] 在 org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:101) [artemis-commons-2.1.0.jar:2.1.0] 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_144] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_144] 在 java.lang.Thread.run(Thread.java:748) [?:1.8.0_144]

【问题讨论】:

  • 两个问题。 1. 这是哪个版本的 Corda? 2.您确定在切换到devMode=true之前删除了现有的开发密钥库吗?
  • V2,是的,我删除了证书文件夹中的证书
  • 你能发布一个完整的堆栈跟踪错误吗?
  • 你需要在 devMode=true 之后设置自己的证书

标签: corda


【解决方案1】:

错误消息来自ArtemisMessagingServer,它使用节点的 TLS 证书。该消息表明 TLS 证书链设置不正确,或者节点信任库中的根证书错误。不幸的是,这是一个java.security 错误,而不是 Corda 错误,并且它没有提供有关问题确切原因的信息。

您的 TLS 证书应具有以下链:

TLS证书->节点CA证书->中间CA证书->根CA证书

所有这些证书的密钥都应使用与 TLS 兼容的算法(不是 EdDSA)。

【讨论】:

    猜你喜欢
    • 2018-10-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-03
    • 1970-01-01
    • 2021-05-25
    • 1970-01-01
    • 1970-01-01
    • 2018-12-19
    相关资源
    最近更新 更多