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

时间:2018-02-16 13:47:00

标签: go hyperledger-fabric hyperledger

我正在尝试设置Fabric Root CA和中间CA.

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

Farbic root ca Caconstanint的配置如下:允许此Ca签署其他intermeidate证书。

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脚本验证了这些值的证书。 https://play.golang.org/p/qoC7PIAmuo0

它有MaxPathLenMaxPathLenZero 1假。

但是当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"}

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

2 个答案:

答案 0 :(得分:0)

我发现了这个问题。正是在Intermendiate 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

答案 1 :(得分:-1)

就我而言,我只是将maxpathlen和pathlength设置为0。