通过REST API访问Fabric CA服务器遇到认证错误
Hyperledger Fabric CA注册/登记请求头令牌问题解答
一、获取登记证书(Enrollment Certificate)
登记证书(ECert)是已完成登记操作的用户身份凭证,获取方式如下:
- 先用Fabric CA的授权初始身份(比如默认的bootstrap管理员账号
admin,密码在CA启动配置中指定)调用/api/v1/enroll接口,请求体携带用户名和密码,成功后接口会返回包含ECert的完整身份数据(含证书PEM字符串、私钥等)。 - 后续所有需要身份认证的请求,都使用这个已登记身份的ECert作为令牌的第一部分。
二、生成证书+请求正文的签名
要生成令牌的签名段,需按以下步骤操作:
- 拼接待签内容:将你的登记证书(PEM格式字符串)和当前请求的JSON正文原文直接拼接,不要额外添加换行、空格等干扰字符。
- 执行签名:使用该登记证书对应的私钥,采用Fabric CA默认的
ECDSA-SHA256算法对拼接后的内容进行签名。 - 编码签名结果:将签名后的二进制数据做Base64编码,得到令牌的签名段。
三、组装Authorization请求头
将Base64编码后的登记证书和Base64编码后的签名用英文句点.连接,作为Authorization请求头的值,格式示例:
Authorization: <Base64编码的ECert>.<Base64编码的签名>
关于fabric-samples/token-sdk的提示
你研究的token-sdk中已经封装了身份管理、签名生成的工具方法,无需手动处理编码和签名的底层细节。可以重点查看SDK中与身份认证、请求签名相关的模块,直接复用已有逻辑来生成符合要求的Authorization令牌。
内容的提问来源于stack exchange,提问作者Shubham Prajapati
相关产品推荐
相关产品推荐

