Go 中间服务器注册问题“本地签名者策略不允许颁发CA证书”

Go 中间服务器注册问题“本地签名者策略不允许颁发CA证书”,go,hyperledger-fabric,hyperledger,Go,Hyperledger Fabric,Hyperledger,我正在尝试设置结构根CA和中间CA 使用go语言,版本1.7.1,环境如下 Farbic根ca配置如下,用于Caconstanint,以允许此ca签署其他intermeridate证书 signing: default: usage: - digital signature expiry: 8760h profiles: ca: usage: - cert sign expiry: 43800h caconstraint:

我正在尝试设置结构根CA和中间CA

使用go语言,版本1.7.1,环境如下

Farbic根ca配置如下,用于Caconstanint,以允许此ca签署其他intermeridate证书

signing:
default:
  usage:
    - digital signature
  expiry: 8760h
profiles:
  ca:
     usage:
       - cert sign
     expiry: 43800h
     caconstraint:
       isca: true
       maxpathlen: 1
在“CSR”部分的“路径长度”下

  csr:
   cn: fabric-root.example.com
   names:
      - C: US
        ST: "North Carolina"
        L: cary
        O: Hyperledger
        OU: Fabric
   hosts:
     - fabric-ca-root.example.com
     - fabric-ca-root
     - fabric-root
   ca:
      expiry: 131400h
      pathlength: 1
使用go脚本验证这些值的证书。

它有MaxPathLen和MaxPathLenZero 1 false

但当CA中间服务注册时,我仍然从CA服务器上的Cfssl库调用中得到这个错误,如下所示

2018/02/16 12:19:39 [DEBUG] getUserAttrValue identity=fabric-int-ca-1.example.com, name=hf.IntermediateCA, value=true
2018/02/16 12:19:39 [ERROR] local signer policy disallows issuing CA certificate
2018/02/16 12:19:39 [ERROR] Enrollment failure: Failed signing: {"code":5300,"message":"Policy violation request"}

如果您找到解决方法,请告知是否有任何人存在类似问题

我发现了这个问题。正是端部Ca中的配置导致剖面下中间部分出现问题,但未提供根Ca中定义的Ca

  profiles:
  ca:
     usage:
       - cert sign
     expiry: 43800h
     caconstraint:
       isca: true
       maxpathlen: 1

    intermediate:
  parentserver:
    url: https://fabric-ca-root.example.com:7054
    caname: fabric-root.example.com

  enrollment:
    hosts:
         - fabric-int-ca-1.example.com
         - fabric-int-ca-1
         - fabric-int-ca
    profile: ca

在我的例子中,我刚刚将maxpathlen和pathlength设置为0。

您可以在中看到解决方案