원서 : https://hyperledger-fabric.readthedocs.io/en/release-1.4/enable_tls.html

  • Fabric에서는 node간 보안통신을 위해, TLS를 사용합니다.
  • (TLS는 '단방향 server 인증' 및 '양방향 server-client 인증' 을 모두 제공합니다.)
  • Configuring TLS for peers nodes
    • peer-node는 "TLS server" 이자 "TLS client" 입니다.
    • "TLS server"인 경우는, '다른 peer-node' or 'application' or 'CLI' 에서 연결되는 경우 입니다.
    • "TLS client"인 경우는, '다른 peer-node' or 'orderer' 으로 연결하는 경우 입니다.
    • "TLS server"는 아래와 같이 peer configuration 속성을 설정하면 됩니다.
      • peer.tls.enabled = true
      • peer.tls.cert.file = TLS server 인증서
      • peer.tls.key.file = TLS server 개인키
      • peer.tls.rootcert.file = root CA 인증서체인
    • 디폴트론, peer-node에서 "TLS server"를 활성화 하면~ "TLS client"는 비활성 되는것으로 간주 됩니다.
    • 왜냐? "TLS server"는 '다른 peer-node' or 'application' or 'CLI' 의 인증서가 TLS-handshake 과정에서 필요없기때문 입니다.
    • "TLS client"는 아마도 아래와 같이 명시적으로 peer configuration 속성을 설정하면 됩니다.
      • peer.tls.clientAuthRequired = true
      • peer.tls.clientRootCAs.files = root CA 인증서체인
      • peer.tls.clientCert.file = TLS client 인증서 (TLS server와 동일해도 됨)
      • peer.tls.clientKey.file = TLS client 개인키 (TLS server와 동일해도 됨)
    • 물론 peer-node "환경변수" 으로 설정하셔도 됩니다.
      • CORE_PEER_TLS_ENABLED
      • CORE_PEER_TLS_CERT_FILE
      • CORE_PEER_TLS_KEY_FILE
      • CORE_PEER_TLS_ROOTCERT_FILE
      • CORE_PEER_TLS_CLIENTAUTHREQUIRED
      • CORE_PEER_TLS_CLIENTROOTCAS_FILES
      • CORE_PEER_TLS_CLIENTCERT_FILE 
      • CORE_PEER_TLS_CLIENTKEY_FILE 
    • peer가 channel에 참여하게 되면, channel의 config-block에서 'root CA 인증서체인'을 읽어서~ member 판단을 합니다.
    • 그리고 peer는 "TLS client"으로 추가되고, "서버 root CA 데이터구조"에도 추가 됩니다.
    • 이렇게 되어, peer는 다른 peer 이나 orderer 와 원활하게 TLS 보안통신을 할수있게됩니다.
  • Configuring TLS for orderer nodes
    • "TLS server"는 아래와 같이 orderer configuration 속성을 설정하면 됩니다.
      • General.TLS.Enabled = 
      • General.TLS.PrivateKey = 
      • General.TLS.Certificate = 
      • General.TLS.RootCAs = 
    • "TLS client"는 아마도 아래와 같이 명시적으로 orderer configuration 속성을 설정하면 됩니다. (디폴트 비활성화)
      • General.TLS.ClientAuthRequired = 
      • General.TLS.ClientRootCAs = 
    • 마찬가지로 orderer-node "환경변수" 으로 설정하셔도 됩니다.
      • ORDERER_GENERAL_TLS_ENABLED 
      • ORDERER_GENERAL_TLS_PRIVATEKEY 
      • ORDERER_GENERAL_TLS_CERTIFICATE 
      • ORDERER_GENERAL_TLS_ROOTCAS 
      • ORDERER_GENERAL_TLS_CLIENTAUTHREQUIRED 
      • ORDERER_GENERAL_TLS_CLIENTROOTCAS 
  • Configuring TLS for the peer CLI
    • CLI 사용시, TLS 옵션 설정입니다.
    • ...
  • Debugging TLS issues
    • ...

-끝-

'hyperledger > fabDoc.Ops-Guides' 카테고리의 다른 글

The Operations Service  (0) 2019.08.03
Access Control Lists (ACL)  (0) 2019.08.03
Pluggable transaction endorsement and validation  (0) 2019.08.03
Endorsement policies  (0) 2019.08.03
Channel Configuration (configtx)  (0) 2019.08.03

+ Recent posts