Corda V3 Network Permissioning自行发布节点证书

时间:2018-03-26 08:48:33

标签: corda

您好我一直在尝试非开发模式启动corda V3的节点。

目前,在启动节点后,在重新启动期间,我遇到以下错误:java.security.cert.CertPathValidatorException: The issuing certificate for C=UK, L=London, O=NetworkMapAndNotary has role NETWORK_MAP, expected one of [INTERMEDIATE_CA, NODE_CA]

我在此链接中提供了我所遵循的角色:https://docs.corda.net/head/permissioning.html#certificate-role-extension

OID Corda Role (1.3.6.1.4.1.50530.1.1)

获得

针对此问题的任何指示?

当我按照Devmode并将我的NetworkMapAndNotary分配给(角色4)时,它无法启动时出现错误:java.lang.IllegalArgumentException: Incorrect cert role: NODE_CA at net.corda.nodeapi.internal.network.NetworkMapKt.verifiedNetworkMapCert(NetworkMap.kt:48) ~[corda-node-api-corda-3.0.jar:?]

在旁注:我试图遵循devmode证书创建并注意到devmode(NetworkMapAndNotary)证书在节点(角色4)下被标记为什么会这样..

Certificate[2]:
Owner: O=NetworkMapAndNotary, L=London, C=UK
Issuer: C=UK, L=London, OU=corda, O=R3, CN=Corda Node Intermediate CA
Serial number: 39551bff61207fb6
Valid from: Mon Mar 26 07:00:00 ICT 2018 until: Thu May 20 07:00:00 ICT 2027
Certificate fingerprints:
     MD5:  D1:8C:4D:83:F2:A7:F4:DA:60:05:E3:69:2C:30:FF:20
     SHA1: E5:4D:01:A5:68:01:73:59:8B:7A:3D:0B:28:4E:35:C4:CD:DE:C7:52
     SHA256: 3F:D6:24:E5:C8:9F:BE:EE:D4:99:D7:2C:85:50:F0:A8:26:46:84:D7:FB:3A:42:54:F2:12:64:51:48:58:FD:CF
     Signature algorithm name: SHA256withECDSA
     Version: 3

Extensions:

#1: ObjectId: 1.3.6.1.4.1.50530.1.1 Criticality=false
0000: 02 01 04

2 个答案:

答案 0 :(得分:3)

我通过遵循此图表分配两个不同的证书来解决它:https://docs.corda.net/_images/certificate_structure.png

基本上我需要创建两个证书而不是一个。

  1. 网络地图自签名证书(网络地图角色)
  2. nodeca的另一个签名证书(节点角色)
  3. 这里的一个问题是因为Corda的工具networkBootStrapper.kt文件在installNetworkParameters函数内部附带了一个硬代码函数,它始终会调用:createDevNetworkMapCa()函数来生成一个dev密钥无论我是否处于开发模式,都会配对。

    自定义文件以使用自签名证书在角色扩展上添加网络映射。所以节点证书仍然存在,但网络映射将是一次性使用的密钥,只是为每个节点生成网络参数文件,节点角色将始终用于节点启动。

    失败重启是因为它看到网络地图角色证书在网络中扮演另一个节点角色。

答案 1 :(得分:0)

网络地图已在Corda V3中重新设计。请查看以下blog post和文档here

尝试删除网络地图标识