Hyperledger fabric 如何在对等方和订购方中使用TLS建立区块链网络?

Hyperledger fabric 如何在对等方和订购方中使用TLS建立区块链网络?,hyperledger-fabric,Hyperledger Fabric,hyperledger文档中的此页显示应使用哪个环境变量设置对等方和订购方: 在同行中: CORE_PEER_TLS_ENABLED=真正的CORE_PEER_TLS_CERT_FILE=完全合格 服务器证书核心\u对等\u TLS\u密钥\u文件的路径=完全 服务器私钥核心\u对等\u TLS\u根证书\u文件的限定路径= CA链文件的完全限定路径 CORE\u PEER\u TLS\u CLIENTAUTHREQUIRED=真 CORE\u PEER\u TLS\u CLIENTROOTCA

hyperledger文档中的此页显示应使用哪个环境变量设置对等方和订购方:

在同行中:

CORE_PEER_TLS_ENABLED=真正的CORE_PEER_TLS_CERT_FILE=完全合格 服务器证书核心\u对等\u TLS\u密钥\u文件的路径=完全 服务器私钥核心\u对等\u TLS\u根证书\u文件的限定路径= CA链文件的完全限定路径 CORE\u PEER\u TLS\u CLIENTAUTHREQUIRED=真 CORE\u PEER\u TLS\u CLIENTROOTCAS\u FILES=CA的完全限定路径 链文件CORE\u PEER\u TLS\u CLIENTCERT\u file=的完全限定路径 客户端证书核心\u对等\u TLS\u客户端密钥\u文件=完全限定路径 客户端密钥的配置

在订购方中:

ORDERER\u GENERAL\u TLS\u ENABLED=真正的ORDERER\u GENERAL\u TLS\u PRIVATEKEY= 包含服务器私钥的文件的完全限定路径 ORDERER\u GENERAL\u TLS\u CERTIFICATE=文件的完全限定路径 包含服务器证书订购者\u常规\u TLS\u根CA的= 包含证书链的文件的完全限定路径 颁发TLS服务器证书的CA的 订购方\u常规\u TLS\u CLIENTAUTHREQUIRED=true ORDERER\u GENERAL\u TLS\u CLIENTROOTCAS=文件的完全限定路径 包含颁发TLS服务器的CA的证书链的 证书

问题是,我不知道应该在这些env变量中使用来自加密材料的哪个证书

我不知道每个env变量都应该在创建通道时使用,例如,创建通道时,该命令需要tls连接的以下参数:

--包含订购端点的PEM编码的可信证书的文件的cafile路径 --certfile包含PEM编码的X509公钥的文件路径,用于与订购方端点的相互TLS通信 --包含PEM编码私钥的文件的密钥文件路径,用于与订购方端点的相互TLS通信

1) 启动对等方和订购方时,我应该使用生成的加密材料中的哪个证书

2) 我应该在对等通道创建命令中将哪个证书作为参数传递?

这就是我正在做的(并且对我有效):

订购方:

          (....)
          - ORDERER_GENERAL_TLS_ENABLED=true
          - ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/orderer/tls/server.key
          - ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/orderer/tls/server.crt
          - ORDERER_GENERAL_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
        working_dir: /opt/gopath/src/github.com/hyperledger/fabric
        command: orderer
        volumes:
        - ./crypto-config/ordererOrganizations/org1.example.com/orderers/orderer.org1.example.com/tls/:/var/hyperledger/orderer/tls
        (....)
同行:

CLI:

创建通道命令:

peer channel create -o orderer.org1.example.com:7050 -c channelname --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/org1.example.com/orderers/orderer.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem -f ./channel-artifacts/channelname.tx
这就是我正在做的(并且对我有效):

订购方:

          (....)
          - ORDERER_GENERAL_TLS_ENABLED=true
          - ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/orderer/tls/server.key
          - ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/orderer/tls/server.crt
          - ORDERER_GENERAL_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
        working_dir: /opt/gopath/src/github.com/hyperledger/fabric
        command: orderer
        volumes:
        - ./crypto-config/ordererOrganizations/org1.example.com/orderers/orderer.org1.example.com/tls/:/var/hyperledger/orderer/tls
        (....)
同行:

CLI:

创建通道命令:

peer channel create -o orderer.org1.example.com:7050 -c channelname --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/org1.example.com/orderers/orderer.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem -f ./channel-artifacts/channelname.tx

你好谢谢你的回答。还可以提供一个示例命令来加入此通道吗?目前我面临一个奇怪的问题。我能够成功创建频道,但无法加入它。。。FORBIDDEN@FedorPetrovpeer channel join-b channelname.blockIt现在可以工作了,但之前它对我不起作用:)然而,问题与我忘记为对等节点设置CouchDB环境变量有关。如果没有设置这些变量,对等方可以创建通道,但不能加入它。错误消息与未知权限有关,但与couchdb.Hi无关。谢谢你的回答。还可以提供一个示例命令来加入此通道吗?目前我面临一个奇怪的问题。我能够成功创建频道,但无法加入它。。。FORBIDDEN@FedorPetrovpeer channel join-b channelname.blockIt现在可以工作了,但之前它对我不起作用:)然而,问题与我忘记为对等节点设置CouchDB环境变量有关。如果没有设置这些变量,对等方可以创建通道,但不能加入它。错误消息与未知权限有关,但与couchdb无关。