Fabric-CAA開発の小さな常識

7746 ワード

fabric-ca
簡単に説明する
  • fabric-ca server端末のデフォルトポート7054は、REST、コマンドラインの2つの方式のインタラクションをサポートしています。fabric-caの3つの証明書タイプです。
  • 登録証明書(ECert):エンティティIDを検証する
  • 通信証明書(TLSCert):通信リンクのセキュリティを保証し、リモートIDチェック
  • 取引証明書(TCert):ユーザに発行し、各取引の権限を制御する
  • 起動時は、まずinitからスタートしてserver端サービスを開始する必要があります。
  • init操作:fabric-ca-server init-b admin:password(-bパラメータはLDAPを適用しない)
  • init操作:fabric-ca-server start-b admin:password
  • fabric-ca-clientコマンドインタラクティブ
    fabric-ca-clientコマンドは、5つのサブコマンドを含むサービスと対話することができます。
  • enroll:ECert
  • にログインします。
  • get cacert:CAサービスを取得する証明書チェーン
  • reenroll:再登録
  • Register:ユーザーエンティティ
  • を登録する。
  • Revoke:ピンオフで発行されたエンティティ証明書
  • デジタル証明書
    デジタル証明書について:
  • X 509公式パッケージは現在、p 256、224、384、521の4つのpシリーズの楕円形アルゴリズムのみをサポートしています。国密やs 256ビットコインなどの楕円形アルゴリズムは
  • をサポートしていません。
  • x 509.CreateCerrtificateは、ローカルに証明書を作成し、caと対話しない
  • です。
  • x 509.CreateCent requestは証明書要求ファイルCSRを作成してcaに与え、caに証明書の発行をさせるもので、両方とも秘密鍵を生成する必要がある
  • 証明書破棄リストCRLは一定ではなく、自動的に更新されます。
    CRLは自発的ではなく、受動的にfabric組織に更新されます。チャンネルを手動でアップデートする必要があります。
    チャンネルを更新すると、CRLはfabricで有効になります。
    中間CAを登録する
    中間CAのためにCA署名証明書を作成するためには、Fabric-ca-client登録CAと同じ方法で親CAに登録しなければならない。これは-uオプションを使用して親CAのURLと登録IDとパスワードを指定することによって行われる。この登録IDに関連する識別は、「hf.IntermediateCA」という名前であり、「true」という値の属性を持たなければならない。証明書が発行されたCN(または汎用名)は登録IDに設定されます。中間CAがCN値を明示的に指定しようと試みると、エラーが発生する。
    命令によって
    fabric-ca-server start -b admin:password -p 7064 -u http://admin:pass@localhost:7054
    
    多段ca構成で証明書をユーザに発行し、多段ca設定に成功したらca-chain.pemファイルを生成します。
    ca-chain.pemについては、ルートCAと中間CA証明書を書き込みます。ルート証明書は一番下にあります。
    ツールopenssl verify-CAfileコマンドを使用して、2つの証明書の証明書チェーン関係を検証できます。
    LDAPの設定
    Fabric CAサーバは、LDAPサーバから読み出されるように構成されてもよい。
    特に、Fabric CAサーバは、LDAPサーバに接続して、以下の動作を実行してもよい。
  • は、登録前に認証された識別情報
  • を検証する。
  • は、認証のための識別属性値を検索する。
  • Fabric CAサーバのプロファイルのLDAP部分を変更して、サーバをLDAPサーバに接続するように構成します。
    ldap:
       # Enables or disables the LDAP client (default: false)
       enabled: false
       # The URL of the LDAP server
       url: >://>:>@>:>/>
       userfilter: >
       attribute:
          # 'names' is an array of strings that identify the specific attributes
          # which are requested from the LDAP server.
          names: >
          # The 'converters' section is used to convert LDAP attribute values
          # to fabric CA attribute values.
          #
          # For example, the following converts an LDAP 'uid' attribute
          # whose value begins with 'revoker' to a fabric CA attribute
          # named "hf.Revoker" with a value of "true" (because the expression
          # evaluates to true).
          #    converters:
          #       - name: hf.Revoker
          #         value: attr("uid") =~ "revoker*"
          #
          # As another example, assume a user has an LDAP attribute named
          # 'member' which has multiple values of "dn1", "dn2", and "dn3".
          # Further assume the following configuration.
          #    converters:
          #       - name: myAttr
          #         value: map(attr("member"),"groups")
          #    maps:
          #       groups:
          #          - name: dn1
          #            value: orderer
          #          - name: dn2
          #            value: peer
          # The value of the user's 'myAttr' attribute is then computed to be
          # "orderer,peer,dn3".  This is because the value of 'attr("member")' is
          # "dn1,dn2,dn3", and the call to 'map' with a 2nd argument of
          # "group" replaces "dn1" with "orderer" and "dn2" with "peer".
          converters:
            - name: >
              value: >
          maps:
            :
                - name: >
                  value: >
    
  • schemeは、ldapまたはldappsの一つである。
  • adminDNはadminユーザの区別名称である。
  • passはadminユーザのパスワードである。
  • hostは、LDAPサーバのホスト名またはIPアドレスである。
  • portはオプションのポート番号であり、デフォルト389はLDAPと636はLDAPSである。
  • baseは、検索のためのLDAPツリーの任意のルートである。
  • filterは、ログイン名を識別可能な名前に変換する検索用のフィルタである。例えば、(uid=%s)はLDAPエントリの値を検索し、uidはログインユーザ名の値を属性とする。同様に、(email=%s)は、電子メールアドレスを用いてログインするために使用されてもよい。
  • LDAPAttrsは、LDAPサーバからの要求を表すLDAP属性名配列である。
  • 複数のCAを設置する
    fabric-caサーバはデフォルトでは一つのデフォルトCAを含むが、cafilesまたはcacount構成オプションを使用して他のCAを単一サーバに追加することができる。追加のCAはそれぞれ自分のホームディレクトリを持っています。
    cacount:
    cacountは、高速起動のデフォルトの追加CA X号を提供しています。ホームディレクトリはサーバディレクトリに対します。このオプションを使うと、ディレクトリの構造は以下の通りです。
    -  <       > 
      |  - ca 
        |  - ca1 
        |  - ca2
    
    各追加のCAは、そのマスタディレクトリで生成されたデフォルトのプロファイルを取得し、構成ファイルには一意のCA名が含まれます。
    例えば、以下のコマンドは、2つのデフォルトCA例を起動する。
    fabric - ca -        - b  admin :adminpw  - cacount  2