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

AWS托管Hyperledger Fabric v1.4.7客户端连接报bad certificate错误

问题根因及修复方案

1. Peer/CA域名配置错误(核心错误)

客户端日志中显示的peer节点实际端点为nd-xxx.managedblockchain.ap-southeast-1.amazonaws.com:30003,你的CCP配置存在两处低级域名错误:

  • 域名多了重复的managedblockchain层级:配置中错误写为xxx.managedblockchain.managedblockchain.us-east-1.amazonaws.com,多余的managedblockchain层级导致域名无效
  • 区域配置不匹配:实际资源部署在ap-southeast-1(新加坡区),配置中错误填写为us-east-1(弗吉尼亚区)
    域名不匹配会直接触发TLS证书校验失败,抛出bad certificate错误。

2. TLS证书路径配置错误

你的客户端应用运行在Docker容器内,CCP中填写的/home/ec2-user/managedblockchain-tls-chain.pem是EC2宿主机的文件路径,容器内默认不存在该路径:

  • 确认启动容器时已将宿主机的managedblockchain-tls-chain.pem挂载到容器内的指定路径,例如/app/certs/managedblockchain-tls-chain.pem
  • 将CCP中所有tlsCACerts.path字段的值修改为容器内的证书实际路径

3. ssl-target-name-override配置错误

AWS托管Hyperledger Fabric的TLS校验要求ssl-target-name-override填写peer节点的完整域名,而不是短节点ID:
请将grpcOptions.ssl-target-name-override的值从nd-CJFWWNIMUJABLLEVL6YITQQMXI修改为peer的完整域名(修正区域和重复层级后的正确域名)。


修正后的配置参考示例

---
name: n-RH3K6KAHFND6BGTXXGRU7C3B5Q
version: 1.0.0
client:
  organization: Org1
  connection:
    timeout:
      peer:
        endorser: "300"
channels:
  mychannel:
    peers:
      nd-CJFWWNIMUJABLLEVL6YITQQMXI:
        endorsingPeer: true
        chaincodeQuery: true
        ledgerQuery: true
        eventSource: true
organizations:
  Org1:
    mspid: m-L3ASCXXBINCWRBTIRBGPP4BP7U
    peers:
      - nd-CJFWWNIMUJABLLEVL6YITQQMXI
    certificateAuthorities:
      - m-L3ASCXXBINCWRBTIRBGPP4BP7U
peers:
  nd-CJFWWNIMUJABLLEVL6YITQQMXI:
    url: grpcs://nd-cjfwwnimujabllevl6yitqqmxi.m-l3ascxxbincwrbtirbgpp4bp7u.n-rh3k6kahfnd6bgtxxgru7c3b5q.managedblockchain.ap-southeast-1.amazonaws.com:30003
    eventUrl: grpcs://nd-cjfwwnimujabllevl6yitqqmxi.m-l3ascxxbincwrbtirbgpp4bp7u.n-rh3k6kahfnd6bgtxxgru7c3b5q.managedblockchain.ap-southeast-1.amazonaws.com:30004
    grpcOptions:
      ssl-target-name-override: nd-cjfwwnimujabllevl6yitqqmxi.m-l3ascxxbincwrbtirbgpp4bp7u.n-rh3k6kahfnd6bgtxxgru7c3b5q.managedblockchain.ap-southeast-1.amazonaws.com
    tlsCACerts:
      path: <替换为容器内证书实际路径>
certificateAuthorities:
  m-L3ASCXXBINCWRBTIRBGPP4BP7U:
    url: https://ca.m-l3ascxxbincwrbtirbgpp4bp7u.n-rh3k6kahfnd6bgtxxgru7c3b5q.managedblockchain.ap-southeast-1.amazonaws.com:30002
    httpOptions:
      verify: false
    tlsCACerts:
      path: <替换为容器内证书实际路径>
    caName: m-L3ASCXXBINCWRBTIRBGPP4BP7U

额外校验项

  • 确认Docker容器启动时挂载证书的路径和配置内路径一致,且容器内运行应用的用户对证书文件有读权限
  • 确认客户端使用的用户证书、私钥和MSP ID和cli使用的完全一致,且证书未过期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 14:54:03