使用根和中间 CA 生成的证书启动对等方和排序方时出错

Error while starting peers and orderer with the certificates generated using Root and Intermediate CA

我正在尝试为我的网络设置实施根 CA 和中间 CA。我已经创建了根 CA 和中间 CA,并且已经注册并注册了组织的所有成员,即订购者、同行、管理员、用户。

一切正常,因为我已经看到了 CA 的日志并且它们工作正常但是当我尝试启动 docker 节点和排序者的容器时,他们没有起床,通过查看日志订购者和同行的我得到这些日志:

certificate has expired or is not yet valid yet.

任何人都可以帮我解决这个问题,因为我已经尝试了几次,但每次我都只收到这个错误。

这似乎更像是生成证书而不是过期的问题。所以它们要么还没有生成,要么放错地方了。

首先尝试完全重启docker。 然后,在密钥生成后添加一些缓冲时间。您可以在调用 cryptogen 和 configtxgen 之后但在实际 docker 容器启动之前添加 sleep 300

如果没有帮助,请尝试追踪证书的位置以及您尝试从哪里获取它们。

好的,我在这里找到了解决方案:

https://jira.hyperledger.org/browse/FABC-832

peer的起始有效期即Not Before比中间CA早5分钟左右。这是因为默认情况下,Fabric CA 将证书签名回溯 5 分钟。所以现在我在 fabric-ca-config.yaml 文件中将回溯日期设置为 1 秒:

signing:
    default:
      usage:
        - digital signature
      expiry: 8760h
      backdate: 1s
    profiles:
      ca:
         backdate: 1s
         usage:
           - cert sign
           - crl sign
         expiry: 43800h
         caconstraint:
           isca: true
           maxpathlen: 0
      tls:
         backdate: 1s
         usage:
            - signing
            - key encipherment
            - server auth
            - client auth
            - key agreement
         expiry: 8760h