20.6.2. 自己署名証明書

前提条件

  • このプロセスでは、自己署名証明書が自動的に生成されず更新されないため、信頼済みストレージプールはオフラインでなければなりません。このプロセスを開始する前に、ボリューム、アプリケーション、クライアント、およびその他のエンドユーザーに停止した期間をスケジュールします。
このセクションでは、自己署名証明書によるネットワーク暗号化を使用する信頼できるストレージプールにアクセスできるように新しいクライアントを認証する方法を説明します。

手順20.11 自己署名証明書を使用した新規クライアントの承認

  1. クライアントのキーの生成

    クライアントで以下のコマンドを実行します。
    # openssl genrsa -out /etc/ssl/glusterfs.key 2048
  2. クライアント用の自己署名証明書の生成

    以下のコマンドは、デフォルトの 30 日ではなく、365 日で有効期限が切れる署名済み証明書を生成します。COMMONNAME の代わりにこのマシンの短縮名を指定します。これは通常、ホスト名、FQDN、または IP アドレスです。
    # openssl req -new -x509 -key /etc/ssl/glusterfs.key -subj "/CN=COMMONNAME" -days 365 -out /etc/ssl/glusterfs.pem
  3. クライアントへの認証局リストの追加

    既存のクライアントから新しいクライアントに /etc/ssl/glusterfs.ca ファイルをコピーします。新しいクライアントから以下のコマンドを実行します。
    # scp existingclient:/etc/ssl/glusterfs.ca /etc/ssl/glusterfs.ca
  4. 新規サーバーの glusterfs.ca ファイルの生成

    任意のサーバーで、新しいクライアントの /etc/ssl/glusterfs.pem ファイルの値をサーバーの /etc/ssl/glusterfs.ca ファイルの最後に追加します。
    更新された /etc/ssl/glusterfs.ca ファイルを、信頼できるストレージプール内の全サーバーの /etc/ssl ディレクトリーに置きます。
    たとえば、いずれかのサーバーで以下のコマンドを実行すると、新しいクライアントから glusterfs.ca ファイルで .pem ファイルを更新してから、その glusterfs.ca ファイルをすべてのサーバーにコピーします。
    # ssh user@newclient cat /etc/ssl/glusterfs.pem >> /etc/ssl/glusterfs.ca
    # scp /etc/ssl/glusterfs.ca server1:/etc/ssl/glusterfs.ca
    # scp /etc/ssl/glusterfs.ca server2:/etc/ssl/glusterfs.ca
  5. 新しいクライアント上で管理暗号化を設定します (使用している場合)。

    クライアントで /var/lib/glusterd ディレクトリーを作成し、新しい /var/lib/glusterd/secure-access ファイルを作成します。デフォルト設定を使用している場合は、このファイルは空にすることができます。
    # touch /var/lib/glusterd/secure-access
    認証局が正しく機能するには、SSL 証明書の深さ設定 transport.socket.ssl-cert-depth への変更が必要になる場合があります。この設定を編集するには、以下の行を secure-access ファイルに追加します。n は 認証局で必要な証明書深度に置き換えます。
    echo "option transport.socket.ssl-cert-depth n" > /var/lib/glusterd/secure-access
  6. 許可するサーバーおよびクライアントの一覧を更新します。

    任意のサーバーから以下のコマンドを実行し、ボリュームにアクセスできるサーバーおよびクライアントの共通名を指定します。提供される共通名は、そのサーバーまたはクライアントの glusterfs.pem ファイルの作成時に指定される共通名と同じである必要があります。
    # gluster volume set volname auth.ssl-allow 'server1,server2,client1,client2,client3'
    注記
    gluster volume set コマンドは、オプションの既存の値に追加されません。一覧に新しい名前を追加するには、gluster volume info コマンドを使用して既存の一覧を取得し、新しい名前を一覧に追加し、gluster volume set コマンドを使用してオプションを再度設定します。
    また、デフォルト値の * も使用できます。これは、TLS 認証されたすべてのマシンがボリュームをマウントおよびアクセスできることを示します。
  7. ボリュームの起動

    任意のサーバーから以下のコマンドを実行してボリュームを起動します。
    # gluster volume start volname
  8. 管理暗号化を使用する場合は、すべてのサーバーで glusterd を再起動します。

    Red Hat Enterprise Linux 7 ベースのインストールの場合:
    # systemctl start glusterd
    Red Hat Enterprise Linux 6 ベースのインストールの場合:
    # service glusterd start
    重要
    Red Hat Gluster Storage は 3.5 Batch Update 1 以降では、Red Hat Enterprise Linux 6 (RHEL 6) でサポートされません。インストールガイドの『バージョンの詳細』表および『Red Hat Gluster Storage ソフトウェアコンポーネントおよびバージョン』 を参照してください。
  9. 検証

    ボリュームが新規クライアントからマウントできることを確認します。ボリュームをマウントするプロセスは、クライアントが使用しているプロトコルによって異なります。
    次のコマンドは、ネイティブ FUSE プロトコルを使用してボリュームをマウントします。このコマンドは、認証済みのクライアントで機能し、承認されていないクライアントでは機能しません。
    # mount -t glusterfs server1:testvolume /mnt/glusterfs