hypereldger 结构管理证书和 tls 证书已过期

时间:2020-12-19 08:52:43

标签: hyperledger-fabric hyperledger hyperledger-chaincode hyperledger-fabric-ca

我注意到在 HLf 中 admincerts 和 tls certs 的有效期默认为 1 年。在我的情况下,它们已过期,并且我的排序节点和对等节点给出了错误的证书错误。 有没有办法进行证书轮换?我不想丢失任何数据,因为网络处于生产环境中。我正在使用带有 raft 订购服务的 hyperledger fabric 1.4 版本。

2 个答案:

答案 0 :(得分:0)

您可以通过在 fabric-ca-server 配置文件中更改其持续时间来更改 x509 证书的默认到期时间。您将在 CA 的 docker 容器中找到此文件。

可以在 here 中找到对 fabric-ca-server 配置文件的引用。

在文件的签名部分将 expiry 的值从 8760h 更改为 xxxx。 signing 部分如下所示:

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

更改 expiry 的值后,您必须重新启动 CA 容器才能使更改生效。

一旦您的容器重新启动,请重新注册您的管理员以创建具有更新的到期期限的新 x509 证书。您可以从 here 阅读有关重新注册身份的信息。

如果您想避免任何用户将来出现此类情况,您可以在进行交易前重新注册。如果证书已经过期或将在接下来的 x 时间内过期,您可以执行重新注册操作。

答案 1 :(得分:0)

我使用的是 Fabric v2.3 并使用 Fabric CA。

当我们重新注册 peers、orderer 或 admin 时,它将生成一对新的证书。

如果我错了,请纠正我,这些新生成的证书也需要在通道配置中更新吗?至少这是文档所说的here

我尝试按照文档进行操作,它确实包含我们需要替换的 root_certstls_certs。将其解码为 json 文件后,通常的示例配置块类似于 this。此处需要替换相应的证书,这似乎很容易出错,因为它是手动的,并且需要替换许多证书(取决于您拥有的同行、订购者和组织的数量)。而且,不要忘记这些证书也被 ccp.yaml 和 ccp.json 引用,它们也被 Fabric sdk 使用。

我不确定我的理解是否正确,因为我也在为这件事苦苦挣扎。到目前为止,我还没有能够成功地拉出这个。奇怪的是,超级账本结构/结构 CA 并没有真正做到这一点的直接方法。