You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure上的Microsoft CCF无法激活初始成员求助

Azure机密账本成员激活报错排查

在机密账本上执行任何操作都需要至少一名Active(活跃)成员。在Azure上创建机密账本时会自动生成一个成员(本例为ccfbank1),初始状态为Accepted(已接受)。要将成员状态从Accepted切换到Active,需调用/gov/state-digests/:ack端点并传入最新状态的签名摘要,但调用后返回如下错误:

执行命令

ccf_cose_sign1 \
--ccf-gov-msg-type ack \
--ccf-gov-msg-created_at date -uIseconds \
--signing-key ccfbank1_privk.pem \
--signing-cert ccfbank1_cert.pem \
--content state_digest.json \
| curl https://myledger.confidential-ledger.azure.com/gov/members/state-digests/memberId:ack?api-version=2023-06-01-preview -k
--data-binary @-
-H "content-type: application/cose" 

返回错误

{"error":{"code":"InvalidInput","message":"[json.exception.type_error.302] type must be string, but is number"}}

问题分析与修复方案

错误提示表明请求中存在“应为字符串类型但传入数字”的字段,重点排查以下几点:

  • 时间参数传递错误:
    --ccf-gov-msg-created_at需要接收字符串格式的UTC时间戳,原命令中直接写date -uIseconds会将命令本身而非执行结果作为参数值,导致生成的COSE消息中时间字段类型异常。需用命令替换语法获取正确的时间字符串:

    --ccf-gov-msg-created_at "$(date -uIseconds)"
    
  • curl命令格式错误:
    原命令中curl行末尾未加反斜杠,会导致后续的--data-binary和-H参数被当成独立命令执行,需修正换行格式。

  • state_digest.json字段检查:
    确认state_digest.json内所有字段类型符合接口要求,比如state_digest等字段若为数值,需包裹为字符串格式。

修正后完整命令

ccf_cose_sign1 \
--ccf-gov-msg-type ack \
--ccf-gov-msg-created_at "$(date -uIseconds)" \
--signing-key ccfbank1_privk.pem \
--signing-cert ccfbank1_cert.pem \
--content state_digest.json \
| curl https://myledger.confidential-ledger.azure.com/gov/members/state-digests/memberId:ack?api-version=2023-06-01-preview -k \
--data-binary @- \
-H "content-type: application/cose"

内容的提问来源于stack exchange,提问作者anthonyc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 18:22:26