【发布时间】: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:我也试过:
- 复制开发模式创建网络映射证书的方式,而不是 其中网络地图分配一个证书(另一个级别)作为 corda.simple.notary
- 在此结构中复制网络地图证书: https://github.com/corda/corda/blob/master/docs/source/permissioning.rst root 对它们进行签名并绕过中间 CA
关于如何在非开发环境中启动网络的任何提示?
编辑:我正在使用 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