【问题标题】:How to setup a blockchain network with TLS in peers and orderers?如何在 peer 和 orderers 中使用 TLS 设置区块链网络?
【发布时间】:2019-01-11 18:56:50
【问题描述】:

hyperledger 文档中的这个页面显示了应该使用哪个环境变量来设置 peer 和 orderers: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 = 真 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 的证书链 证书

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

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

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

1) 在启动 peer 和 orderer 时,我应该使用生成的加密材料中的哪个证书?

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

【问题讨论】:

    标签: hyperledger-fabric


    【解决方案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
      (....)
    

    命令行界面:

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

    【讨论】:

    • 嗨。谢谢您的回答。还可以提供一个示例命令来加入这个频道吗?目前我面临一个奇怪的问题。我可以成功创建频道,但无法加入...禁止
    • @FedorPetrov peer channel join -b channelname.block
    • 它现在可以工作,但它之前对我不起作用:) 但是,问题在某种程度上与我忘记为我的对等节点设置 CouchDB 环境变量的事实有关。如果没有设置这些变量,对等方能够创建通道但不能加入它。错误消息与未知权限有关,但与 couchdb 无关。
    猜你喜欢
    • 1970-01-01
    • 2021-05-24
    • 2019-02-02
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 2018-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多