我注意到在 HLf 中 admincerts 和 tls certs 的有效期默认为 1 年。在我的情况下,它们已过期,并且我的排序节点和对等节点给出了错误的证书错误。 有没有办法进行证书轮换?我不想丢失任何数据,因为网络处于生产环境中。我正在使用带有 raft 订购服务的 hyperledger fabric 1.4 版本。
答案 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_certs 和 tls_certs。将其解码为 json 文件后,通常的示例配置块类似于 this。此处需要替换相应的证书,这似乎很容易出错,因为它是手动的,并且需要替换许多证书(取决于您拥有的同行、订购者和组织的数量)。而且,不要忘记这些证书也被 ccp.yaml 和 ccp.json 引用,它们也被 Fabric sdk 使用。
我不确定我的理解是否正确,因为我也在为这件事苦苦挣扎。到目前为止,我还没有能够成功地拉出这个。奇怪的是,超级账本结构/结构 CA 并没有真正做到这一点的直接方法。