Ccmmutty logo
Commutty IT
3 min read

Fabric CAを利用する上での前提知識とTLS/SSLサーバ証明書の取得方法

https://cdn.magicode.io/media/notebox/3c8367db-75d7-406d-99d1-3710e2a73fde.jpeg

1. Fabric CAとは

Fabric CAは、Hyperledger Fabricの認証局(CA)です。次の機能を提供します。
  • IDの登録
  • 電子証明書(ECerts)の発行
  • 電子証明書の更新と取消
そもそも、CAの役割や機能とはどのようなものなのかを整理しましょう。

2. 認証局(CA)

認証局(CA)とは、ウェブサイトやその他の独立した存在などに、デジタル証明書(TLS/SSLサーバ証明書)を発行する信頼できる組織のことです。ウェブサイトやその他の独立した存在を認証することで、オンラインでのコミュニケーションや取引の信頼性を高めることができます。

2.1 TLS/SSLサーバ証明書とは

TLS(Transport Layer Security)/SSL証明書は、一般的にブラウザ、閲覧中の Web サイト、および Web サイトのサーバーの間で送信されるデータを暗号化することによってインターネット接続を保護します。改ざん、紛失、盗難を防ぎつつデータが非公開で送信されることを保証します。

2.2 TLS/SSLサーバ証明書の取得方法

TLS/SSLサーバ証明書を取得するには、CSR(Certificate Signing Request)を行います。
CSRの流れ
この時、公開鍵の情報と、組織名や所在地等の情報(Distinguished Name=識別名)の情報が必要です。 識別名
項目内容入力例
cnコモンネーム。実際に接続する URL の FQDNを記載する。ca.org1.example.com
C申請組織の国名を記載する。JP
ST都道府県名。申請組織の事業所住所の「都道府県名」を記載する。Tokyo
L市町村名。申請組織の事業所住所の「市区町村名」を記載する。Minato City
O組織名。申請組織の名称を記載する。XXXX Japan Co.,Ltd.
OU組織単位名。部署名の名称を記載する。Technical Division

3. Hyperledger Fabricでのユースケース

以降の説明のディレクトリ構成は、Hyperledger Fabricの公式サンプル(https://github.com/hyperledger/fabric#releases) のうち、test-networkを基にしています。

3.1 TLS/SSLサーバ証明書の取得

Hyperledger Fabricでは、Fabric CAサーバが提供されています。(https://hub.docker.com/r/hyperledger/fabric-ca/tags) Fabric CAサーバを起動すると、test-network/organizations/fabric-ca/org1/fabric-ca-server-config.yamlが生成されます。 これは、TLS/SSLサーバ証明書を生成するために必要なセクションが含まれた設定ファイルです。

3.1.1 識別名の更新

初回のFabric CAサーバ起動時は、識別名はデフォルトの設定値でTLS/SSLサーバ証明書が生成されます。そのため設定値の更新を行い、再度Fabric CAサーバを起動する必要があります。 test-network/organizations/fabric-ca/org1/fabric-ca-server-config.yamlのcsrセクションを記載して、Fabric CAサーバを再起動します。 起動後、test-network/organizations/fabric-ca/org1ディレクトリに、ca-cert.pemとtls-cert.pemが生成されています。
  • ca-cert.pem:CAサーバ証明書ファイル
  • tls-cert.pem:TLSサーバ証明書ファイル
基本的にTLS通信を行うためtls-cert.pemを使用していきますが、これがTLS/SSLサーバ証明書です。以降、この組織がFabric CAサーバと通信を行う際には、tls-cert.pemを用いることで通信が可能となります。

Discussion

コメントにはログインが必要です。