当我尝试注册“admin”用户时,对CreateCertificatePair的第二次调用失败,并显示“签名验证失败”消息。顺便说一下,我复制了eca_test.go中的enrollUser函数。并且可以传递membersrvc / ca包下的那些测试。
ViewBag.UserRoles = db.UserRoles.Select(
x => new SelectListItem
{
Selected = true,
Text = x.UserRoleName,
Value = x.UserRoleID.ToString()
}
答案 0 :(得分:1)
正如谢尔盖所说,CreateCertificatePair
要求创建一个新的证书对,
并根据文件,
在注册期间,应用程序向证书颁发机构发送请求以验证用户注册,如果成功,CA将使用用户证书和密钥进行响应。
成功进行用户身份验证后,应用程序将仅向CA执行一次用户注册。如果同一用户再次尝试注册,则会产生错误。
这就是为什么第二次调用CreateCertificatePair
失败的原因。
如果您确实要注册之前已注册的用户,则需要删除CA服务器进程创建的临时文件(客户端注册证书,注册密钥,事务证书链等),并执行此操作,运行以下命令,
rm -rf /var/hyperledger/production
/var/hyperledger/production
是存储从CA收到证书的目录。
答案 1 :(得分:0)
CreateCertificatePair请求ECA创建新的注册证书对。 "登记"证书是唯一的,ECA每个用户只需创建一次
对同一用户再次致电CreateCertificatePair
会导致错误。