Hyperledger fabric “与”的区别是什么;“注册”;及;“重新滚动”;在织物CA的上下文中?

Hyperledger fabric “与”的区别是什么;“注册”;及;“重新滚动”;在织物CA的上下文中?,hyperledger-fabric,hyperledger-fabric-ca,Hyperledger Fabric,Hyperledger Fabric Ca,在Fabric CA客户端的CLI文档()中,分别有两个名为“enroll”和“reenroll”的命令。有专家能告诉我他们之间的区别吗?谢谢。注册命令用于首次向CA注册用户 在某些情况下,证书可能会过期或受损(因此必须撤销)。因此,这就是重新注册的时候,您再次向CA注册相同的身份以获得新证书 有关证书撤销的附加说明: 撤销的原因有很多(正好10个),撤销时请不要忘记更新CRL(证书撤销列表) 为了更好地理解这些内容,请阅读本文档的以下章节: 当有疑问时,代码是最好的文档 // Handle

在Fabric CA客户端的CLI文档()中,分别有两个名为“enroll”和“reenroll”的命令。有专家能告诉我他们之间的区别吗?谢谢。

注册命令用于首次向CA注册用户

在某些情况下,证书可能会过期或受损(因此必须撤销)。因此,这就是重新注册的时候,您再次向CA注册相同的身份以获得新证书

有关证书撤销的附加说明:

撤销的原因有很多(正好10个),撤销时请不要忘记更新CRL(证书撤销列表)

为了更好地理解这些内容,请阅读本文档的以下章节:


当有疑问时,代码是最好的文档

// Handle an enroll request, guarded by basic authentication
func enrollHandler(ctx *serverRequestContextImpl) (interface{}, error) {
    id, err := ctx.BasicAuthentication()
    if err != nil {
        return nil, err
    }
    resp, err := handleEnroll(ctx, id)
    if err != nil {
        return nil, err
    }
    err = ctx.ui.LoginComplete()
    if err != nil {
        return nil, err
    }
    return resp, nil
}

// Handle a reenroll request, guarded by token authentication
func reenrollHandler(ctx *serverRequestContextImpl) (interface{}, error) {
    // Authenticate the caller
    id, err := ctx.TokenAuthentication()
    if err != nil {
        return nil, err
    }
    return handleEnroll(ctx, id)
}
我们可以看到call
handleEnroll
方法。唯一的区别似乎是
注册
使用
基本身份验证
,而
重新注册
使用
令牌身份验证

//BasicAuthentication验证调用方的用户名和密码 密码//在授权标头中找到并返回用户名

//令牌身份验证通过中的令牌//对调用方进行身份验证 授权标头。//返回注册ID或错误


因此,出于安全原因,您可以先调用
enroll
,提供您的用户名和密码。然后使用通过调用
enroll
reenroll
获得的令牌,而无需再次公开密码。因此,两者之间的区别纯粹是一种安全措施。是的,感谢Fabric让它变得混乱。

我之前做过这个实验,每次执行“enroll”命令时,都会生成一个全新的、不同的私钥和证书。所以,如果执行“reenroll”命令,它是否还会生成新的和不同的私钥和证书?根据您所说的,我可以理解“reenroll”命令不会生成新的私钥,而只生成新的更新证书,对吗?谢谢