我一直在组建一个用于运行生产Fabric 1.0.0网络的Kubernetes设置,下一步是在所有网络资源之间添加TLS通信。为了生成TLS证书,我将fabric-ca设置为以多个根运行,第一个CA用于生成MSP签名证书,第二个CA用于生成TLS工件。根据{{3}},我还配置了fabric-ca来生成具有不同配置文件的TLS证书。
TLS证书的CN记录与每个服务器的主机名(" peer-x.peer")和许多SAN(但不是服务器的IP地址)匹配,因为这些是生成的在那些容器旋转之前)。
与fabric-ca-server /客户端的TLS通信似乎工作正常。我可以为所有同行和订购者创建两个CA的注册证书。
使用configtxgen
创建orderer genesis块时,我已从TLS ca中获取cacert并将其放在org的msp目录的tlscacerts
子目录中,因此它应该包括在必要的地方。
我已经能够成功运行peer channel create
和peer channel join
命令,但在对等方加入频道后,我看到它出现在领导对等方的日志中:< / p>
[deliveryClient] StartDeliverForChannel -> DEBU 307 This peer will pass blocks from orderer service to other peers for channel lynnhurst
[ConnProducer] NewConnection -> ERRO 308 Failed connecting to orderer-2.orderer:7050 , error: x509: certificate signed by unknown authority
[ConnProducer] NewConnection -> ERRO 309 Failed connecting to orderer-1.orderer:7050 , error: x509: certificate signed by unknown authority
[ConnProducer] NewConnection -> ERRO 30a Failed connecting to orderer-0.orderer:7050 , error: x509: certificate signed by unknown authority
[deliveryClient] connect -> ERRO 30b Failed obtaining connection: Could not connect to any of the endpoints: [orderer-2.orderer:7050 orderer-1.orderer:7050 orderer-0.orderer:7050]`
这是在订货人日志中:
[grpc] Printf -> DEBU 418 grpc: Server.Serve failed to complete security handshake from "172.17.0.16:56444": EOF
显然,有关TLS证书的内容仍然不对,但有人会知道可能需要更改的内容吗?我是否需要在TLS CSR中包含服务器的IP地址作为SAN?
答案 0 :(得分:2)
事实证明,如果您的订购者和同行在同一个组织中,这将是Fabric 1.0.1中的一个错误。
答案 1 :(得分:1)
您应该确保完成了不同的配置。
network_mode:host
你能试试吗?!如果您不理解我的答案或者您需要了解更多信息,请再次询问,好吗?!我希望这很有用。