【问题标题】:Hyperledger Composer - connection issue when using TLSHyperledger Composer - 使用 TLS 时的连接问题
【发布时间】:2017-09-13 07:09:02
【问题描述】:

我在多组织、多对等网络之上部署 composer 时遇到问题。我的网络有两个 CA,一个订单和六个对等点(每个组织两个)。

网络使用 TLS,这给我带来了一些问题。跑步时 composer network ping -n network2 -p org1 -i user -s pass

我收到 SSL 错误; E0913 16:54:49.855499904 120141 ssl_transport_security.c:921] 握手失败,出现致命错误 SSL_ERROR_SSL: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed。

E0913 16:54:49.864638248 120141 ssl_transport_security.c:921] 握手失败,出现致命错误 SSL_ERROR_SSL:错误:14090086:SSL 例程:ssl3_get_server_certificate:证书验证失败。

E0913 16:54:49.865108661 120141 ssl_transport_security.c:921] 握手失败,出现致命错误 SSL_ERROR_SSL: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed。

E0913 16:54:49.865506771 120141 ssl_transport_security.c:921] 握手失败,出现致命错误 SSL_ERROR_SSL: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed。

错误:尝试 ping 时出错。错误:尝试查询链码时出错。错误:连接失败 命令失败

这是我的连接文件;

{ “类型”:“hlfv1”, “名称”:“org1”, “订购者”:[ { "url" : "grpcs://localhost:7050", "cert" : "-----BEGIN CERTIFICATE-----removed-----END CERTIFICATE-----\n" } ], "ca": { "url": "http://localhost:7054", “名称”:“ca_peerOrg1”, "trustedRoots": [""], “验证”:真 }, “同行”:[ { "requestURL": "grpcs://localhost:7051", "eventURL": "grpcs://localhost:7053", "cert" : "-----BEGIN CERTIFICATE-----removed-----END CERTIFICATE-----\n" }, { "requestURL": "grpcs://localhost:8051", "eventURL": "grpcs://localhost:8053", "cert" : "-----BEGIN CERTIFICATE-----removed-----END CERTIFICATE-----\n" } ], "keyValStore": "/home/paul/.composer-credentials", “频道”:“我的频道”, "mspID": "Org1MSP", “超时”:“300”, “全球证书”:“”, “最大发送大小”:-1, “最大接收尺寸”:-1 }

cert 的值与用于启动 CA 的 .pem 文件的内容相匹配(sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca .org1.example.com-cert.pem)

有什么想法可以让我使用 TLS 吗?没有一个作曲家命令正在工作,它们都给了我同样的错误

【问题讨论】:

    标签: hyperledger-fabric hyperledger-composer


    【解决方案1】:

    如果您使用 cryptogen 生成证书,那么您的组织将有 tls 文件夹,其中包含您需要放入连接配置文件的公共证书。您用于 CA 配置的证书不是要使用的正确证书。

    【讨论】:

    • 感谢@david_k,我尝试更改证书,它似乎确实有帮助,但是我现在收到与在 GRPC 连接配置文件中使用 localhost 相关的不同错误。 Composer 抛出证书对 localhost 无效的错误。我尝试更改配置以引用容器名称(例如:grpc://peer0.org1.example.com:7051),但我收到一些奇怪的 GRPC 调用 DNS 错误。
    • 在使用连接配置文件中的容器名称时,我可以看到错误消息“使用本机 dns 解析器”(例如:“requestURL”:“grpc://peer0.org1.example.com:7051 ”)。这在更改为 grpc://localhost:7051 时有效,但这给了我证书错误。我认为这是 docker 的错误?
    • 您可能需要在连接配置文件中使用 hostnameOverride 选项。例如订购者:[ { url: 'grpcs://localhost:7050', hostnameOverride: 'orderer.example.com', cert:...' } ]
    猜你喜欢
    • 2018-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-21
    • 2014-12-30
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    相关资源
    最近更新 更多