在 Fabric CA 的上下文中,"enroll" 和 "reenroll" 有什么区别?
What is the difference between "enroll" and "reenroll" in the context of Fabric CA?
在 Fabric-CA 客户端的 CLI 文档(https://hyperledger-fabric-ca.readthedocs.io/en/release-1.4/clientcli.html) 中,有两个命令分别名为 "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)
}
我们可以看到都调用了handleEnroll
方法。唯一的区别似乎是 enroll
使用 BasicAuthentication
而 reenroll
使用 TokenAuthentication
.
// BasicAuthentication authenticates the caller's username and
password // found in the authorization header and returns the username
// TokenAuthentication authenticates the caller by token // in the
authorization header. // Returns the enrollment ID or error.
因此,出于安全原因,您会先致电 enroll
,提供您的用户名和密码。然后使用通过调用 enroll
获得的令牌到 reenroll
而无需再次暴露您的密码。因此,两者之间的区别纯粹是一种安全措施。是的,感谢 Fabric 让它变得混乱。
在 Fabric-CA 客户端的 CLI 文档(https://hyperledger-fabric-ca.readthedocs.io/en/release-1.4/clientcli.html) 中,有两个命令分别名为 "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)
}
我们可以看到都调用了handleEnroll
方法。唯一的区别似乎是 enroll
使用 BasicAuthentication
而 reenroll
使用 TokenAuthentication
.
// BasicAuthentication authenticates the caller's username and password // found in the authorization header and returns the username
// TokenAuthentication authenticates the caller by token // in the authorization header. // Returns the enrollment ID or error.
因此,出于安全原因,您会先致电 enroll
,提供您的用户名和密码。然后使用通过调用 enroll
获得的令牌到 reenroll
而无需再次暴露您的密码。因此,两者之间的区别纯粹是一种安全措施。是的,感谢 Fabric 让它变得混乱。