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

标签 ssl certificate hyperledger-fabric docker-swarm

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

当我尝试将对等方加入我刚刚创建的 channel 时,就会出现问题。终端上显示的消息:

Error: error getting endorser client for channel: endorser client failed to connect to peer0org1:7051: failed to create new connection: context deadline exceeded



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

createTransport -> DEBU 13c grpc: addrConn.createTransport failed to connect to {peer1car1:8051 0 }. Err :connection error: desc = "transport: authentication handshake failed: x509: certificate is valid for peer1.org1, peer1, not peer1org1". Reconnecting...



和一个实际的错误信息:

UTC [core.comm] ServerHandshake -> ERRO 1b9 TLS handshake failed with error remote error: tls: bad certificate server=PeerServer remoteaddress=10.0.2.7:50504



然后我开始查看 crypto-config.yaml 文件和用于部署我的堆栈的 docker-compose.yaml。在 crypto-config.yaml 文件中,我将 de Domain key 声明为“org1”,正如您在日志中看到的那样,证书对 pe​​er1org1 有效。但问题是,当我声明“peer0.org1”的服务名称时,我从 Swarm 收到一个错误,说它是一个无效的名称。

我知道我知道。日志中的消息是针对另一个对等方的,但是与我遇到的这个问题有关吗?关于如何解决它的任何想法?

关于另一个主题:我是容器或查询世界的新手,想知道您的意见。您会使用 Kubernetes 或 Swarm 在生产中部署 Hyperledger Fabric 区 block 链网络吗?

最佳答案

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

PeerOrgs:
  - Name: org1
    Domain: org1
    EnableNodeOUs: true
    Specs:
      - Hostname: peer1
        SANS:
          - "peer1org1"
      - Hostname: peer2
        SANS:
          - "peer2org1"

关于ssl - 使用 Swarm 部署的 Hyperledger Fabric 区 block 链网络上的证书问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61481973/

相关文章:

sql-server-2008 - 在 SQL Server 镜像方案中设置见证时出现问题 w/error

ios - 撤消 iOS 证书吊销

hyperledger-fabric - Fabric 链码中的 shim 代表什么?

python -SSL : CERTIFICATE_VERIFY_FAILED

c# - 从 Windows 服务中调用时 SSL Web 服务调用失败

ssl - Docker 远程 CA 验证

apache - 为什么 curl 不能与我的 TLS ngrok 隧道一起使用?

javascript - 在 Web 浏览器中,JavaScript 是否可以获取有关当前页面使用的 HTTPS 证书的信息?

node.js - NodeJs 客户端登录 Hyperledger Fabric 时使用哪种协议(protocol),OAuth2 还是 OpenId?

hyperledger-fabric - 无法创建 PeerAdminCard