使用Swarm部署的Hyperledger Fabric区块链网络上的证书问题

问题描述 投票:0回答:1

我在使用Hyperledger Fabric v1.4.4在Docker Swarm上部署非常简单的区块链网络时遇到了这个特殊问题。它有2个组织(每个组织2个对等方),5个订购者(筏共识),2个CA(每个组织一个)和4个ouchDB(每个对等方1个)。

当我尝试将对等方加入到我刚创建的频道时,会发生问题。终端上显示的消息:

错误:获取通道的代言人客户端时出错:代言人客户端无法连接到peer0org1:7051:无法创建新的连接:超出了上下文截止日期

当我查看该对等方的日志时,看到一条消息引起了我的注意:

createTransport-> DEBU 13c grpc:addrConn.createTransport无法连接到{peer1car1:8051 0}。错误:连接错误:desc =“传输:身份验证握手失败:x509:证书对peer1.org1,peer1有效,而不对peer1org1有效”。正在重新连接...

以及实际错误消息:

UTC [core.comm] ServerHandshake-> ERRO 1b9 TLS握手失败,并出现错误远程错误:tls:错误的证书服务器= PeerServer remoteaddress = 10.0.2.7:50504

然后,我开始查看crypto-config.yaml文件和用于部署堆栈的docker-compose.yaml。在crypto-config.yaml文件中,我将de域密钥声明为“ org1”,正如您在日志中看到的那样,证书对peer1org1有效。但这是问题所在,当我声明服务名称为“ peer0.org1”时,我从Swarm收到一条错误消息,称其为无效名称。

我知道,我知道。日志中的消息是针对另一个对等方的,但是是否存在与我遇到的此问题相关的更改?关于如何解决它的任何想法?

[关于另一个主题:我是容器或问题世界的新手,想了解您的意见。您将使用Kubernetes或Swarm在生产中部署Hyperledger Fabric区块链网络吗?

ssl certificate hyperledger-fabric docker-swarm
1个回答
1
投票

在您的docker网络中有效的服务名称(我假设它是peer1org1)需要在TLS证书中作为使用者替代名称(SAN)出现。您可以在crypto-config.yaml中指定SANS,如下所示:

PeerOrgs:
  - Name: org1
    Domain: org1
    EnableNodeOUs: true
    Specs:
      - Hostname: peer1
        SANS:
          - "peer1org1"
      - Hostname: peer2
        SANS:
          - "peer2org1"
© www.soinside.com 2019 - 2024. All rights reserved.