如何在对等方和订购方中使用TLS设置区块链网络?

时间:2019-01-11 18:56:51

标签: hyperledger-fabric

超级账本文档中的此页面显示应使用哪个环境变量来设置对等方和订购方:https://hyperledger-fabric.readthedocs.io/en/release-1.3/enable_tls.html

在同龄人中:

  

CORE_PEER_TLS_ENABLED = true CORE_PEER_TLS_CERT_FILE =完全合格   服务器证书的路径CORE_PEER_TLS_KEY_FILE =完整   服务器私钥的限定路径CORE_PEER_TLS_ROOTCERT_FILE =   CA链文件的标准路径   CORE_PEER_TLS_CLIENTAUTHREQUIRED = true   CORE_PEER_TLS_CLIENTROOTCAS_FILES = CA的标准路径   链文件CORE_PEER_TLS_CLIENTCERT_FILE =该文件的标准路径   客户端证书CORE_PEER_TLS_CLIENTKEY_FILE =完全限定的路径   客户密钥的

并在订购者中:

  

ORDERER_GENERAL_TLS_ENABLED = true ORDERER_GENERAL_TLS_PRIVATEKEY =   包含服务器私钥的文件的标准路径   ORDERER_GENERAL_TLS_CERTIFICATE =文件的标准路径   包含服务器证书ORDERER_GENERAL_TLS_ROOTCAS =   包含证书链的文件的标准路径   颁发TLS服务器证书的CA的名称   ORDERER_GENERAL_TLS_CLIENTAUTHREQUIRED = true   ORDERER_GENERAL_TLS_CLIENTROOTCAS =文件的标准路径   包含颁发TLS服务器的CA的证书链   证书

问题是,我不知道我应该在那些env变量中使用哪种加密材料证书。

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

  

-cafile包含用于订购端点的PEM编码的受信任证书的文件的路径   --certfile包含PEM编码的X509公钥的文件的路径,用于与订购者端点进行相互TLS通信   --keyfile包含PEM编码的私钥的文件的路径,用于与订购者端点进行相互TLS通信

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

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

1 个答案:

答案 0 :(得分:1)

这就是我正在做的(为我工作):

订购者:

          (....)
          - 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
        (....)

对等:

   (....)
          - CORE_PEER_TLS_ENABLED=true
          - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt
          - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key
          - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt
        working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
        command: peer node start
        volumes:
            - ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls:/etc/hyperledger/fabric/tls
  (....)

CLI:

(....)          
          - CORE_PEER_TLS_ENABLED=true
          - CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt
          - CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key
          - CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
(....)

创建频道命令:

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