21.3. OpenPegasus 用に SSL 証明書を設定する

OpenLMI は、HTTP トランスポート層で機能する WBEM (ウェブベースのエンタープライズ管理) を使用します。標準の HTTP ベーシック認証がこのプロトコルで実行されます。つまり、ユーザー名とパスワードがリクエストと共に送信されることになります。
安全な認証を確保するには、OpenPegasus CIMOM を設定して通信に HTTPS を使用することが必要になります。管理システム上で暗号化チャンネルを確立するには、SSL (Secure Sockets Layer) または TLS (Transport Layer Security) 証明書が必要になります。
システム上で SSL/TLS 証明書を管理するには、2 つの方法があります。
  • 自己署名証明書では必要なインフラストラクチャーは少なくなりますが、クライアントへの導入および安全な管理はより難しくなります。
  • 認証局署名証明書はいったん設定されるとクライアントへの導入は容易ですが、必要な初期投資が大きくなる可能性があります。
認証局署名証明書を使用する場合は、クライアントシステム上で信頼できる認証局を設定する必要があります。その後に、その権限を使ってすべての管理システムの CIMOM 証明書に署名することができるようになります。証明書は証明書チェーンの一部となることもあるので、管理システムの証明書の署名に使用された証明書が別の、より高い認証局 (Verisign、CAcert、RSA などその他多数) によって署名される場合もあります。
ファイルシステム上のデフォルトの証明書と信頼の保存場所を、表21.2「証明書および信頼の保存場所」 に一覧表示します。

表21.2 証明書および信頼の保存場所

設定オプション場所詳細
sslCertificateFilePath/etc/Pegasus/server.pemCIMOM の公開証明書。
sslKeyFilePath/etc/Pegasus/file.pemCIMOM のみが知っている秘密鍵。
sslTrustStore/etc/Pegasus/client.pem信頼できる証明書機関の一覧を提供するファイルまたはディレクトリー。

重要

表21.2「証明書および信頼の保存場所」 にあるファイルを修正した場合は、tog-pegasus サービスを再起動して新たな証明書が確実に認識されるようにします。サービスを再起動するには、root でシェルプロンプトに以下を入力します。
systemctl restart tog-pegasus.service
Red Hat Enterprise Linux 7 でシステムサービスを管理する詳細情報については、10章systemd によるサービス管理 を参照してください。

21.3.1. 自己署名証明書の管理

自己署名証明書は、自身の秘密鍵を使って署名し、他のいかなる信頼チェーンにも接続されません。管理システム上では、tog-pegasus の初回起動時前に管理者が証明書を提供していない場合、システムのプライマリーホスト名を証明書の件名に使用して、自己署名証明書のセットが自動的に生成されます。

重要

自動生成された自己署名証明書は、デフォルトで 10 年間有効ですが、自動的に更新する機能はありません。これらの証明書を修正するには、このサブジェクトについて OpenSSL または Mozilla NSS のドキュメンテーションが提供するガイドラインに従って、新たな証明書を手動で作成する必要があります。
クライアントシステムが自己署名証明書を信頼するように設定するには、以下のステップに従います。
  1. /etc/Pegasus/server.pem 証明書を管理システムからクライアントシステムの /etc/pki/ca-trust/source/anchors/ ディレクトリーにコピーします。これを実行するには、root でシェルプロンプトに以下を入力します。
    scp root@hostname:/etc/Pegasus/server.pem /etc/pki/ca-trust/source/anchors/pegasus-hostname.pem
    hostname を管理システムのホスト名に置き換えます。このコマンドは、sshd サービスが管理システム上で実行中で、root ユーザーが SSH プロトコルを使ってシステムにログインできるような設定でのみ機能することに注意してください。sshd サービスのインストールおよび設定、また scp コマンドを使って SSH プロトコルでファイルを送信する方法については、12章OpenSSH を参照してください。
  2. チェックサムを元のファイルのものと比較して、クライアントシステム上の証明書の整合性を検証します。管理システム上の /etc/Pegasus/server.pem ファイルのチェックサムを計算するには、そのシステム上で root として以下のコマンドを実行します。
    sha1sum /etc/Pegasus/server.pem
    クライアントシステム上の /etc/pki/ca-trust/source/anchors/pegasus-hostname.pem ファイルのチェックサムを計算するには、このシステム上で以下のコマンドを実行します。
    sha1sum /etc/pki/ca-trust/source/anchors/pegasus-hostname.pem
    hostname を管理システムのホスト名に置き換えます。
  3. クライアントシステムで信頼ストアを更新するには、root で以下のコマンドを実行します。
    update-ca-trust extract

21.3.2. Identity Management を使った認証局署名証明書の管理 (推奨)

Red Hat Enterprise Linux の Identity Management 機能は、ドメインにジョインしたシステム内での SSL 証明書管理を簡素化するドメインコントローラーを提供します。Identity Management サーバーは、埋め込み認証局を提供します。クライアントシステムおよび管理システムをドメインにジョインさせる方法については、Red Hat Enterprise Linux 7 Linux ドメイン ID、認証、およびポリシーガイド または FreeIPA ドキュメンテーションを参照してください。
管理システムでは、Identity Management への登録が必須になります。クライアントシステムでは、登録はオプションになります。
管理システムでは、以下のステップが必要です。
  1. Red Hat Enterprise Linux 7 Linux ドメイン ID、認証、およびポリシーガイド で説明されているように、ipa-client パッケージをインストールして、システムを Identity Management に登録します。
  2. root で以下のコマンドを入力して、Identity Management の署名した証明書を信頼ストアにコピーします。
    cp /etc/ipa/ca.crt /etc/pki/ca-trust/source/anchors/ipa.crt
  3. 信頼ストアを更新するには、root で以下のコマンドを実行します。
    update-ca-trust extract
  4. 権限のあるドメインユーザーとして以下のコマンドを実行して、Pegasus をサービスとして Identity Management ドメインに登録します。
    ipa service-add CIMOM/hostname
    hostname を管理システムのホスト名に置き換えます。
    ipa-admintools パッケージがインストール済みの Identity Management ドメイン内のシステムからであれば、このコマンドが実行できます。Identity Management にサービスエントリーが作成され、これを署名済み SSL 証明書の生成に使用できるようになります。
  5. /etc/Pegasus/ ディレクトリーにある PEM ファイルのバックアップを作成します(推奨)。
  6. root で以下のコマンドを実行して、署名済み証明書を取得します。
    ipa-getcert request -f /etc/Pegasus/server.pem -k /etc/Pegasus/file.pem -N CN=hostname -K CIMOM/hostname
    hostname を管理システムのホスト名に置き換えます。
    これで証明書と鍵ファイルが正常な場所に保存されます。ipa-client-install スクリプトが管理システム上にインストールする certmonger デーモンにより、証明書が必要に応じて最新に保たれ、更新されます。
クライアントシステムを登録して、信頼ストアをアップデートするには、以下のステップに従います。
  1. Red Hat Enterprise Linux 7 Linux ドメイン ID、認証、およびポリシーガイド で説明されているように、ipa-client パッケージをインストールして、システムを Identity Management に登録します。
  2. root で以下のコマンドを入力して、Identity Management の署名した証明書を信頼ストアにコピーします。
    cp /etc/ipa/ca.crt /etc/pki/ca-trust/source/anchors/ipa.crt
  3. 信頼ストアを更新するには、root で以下のコマンドを実行します。
    update-ca-trust extract
クライアントシステムを Identity Management に登録しない場合は、以下のステップに従って信頼ストアを更新します。
  1. rootとして、同一の Identity Management ドメインにジョインしている他のシステムから安全に /etc/ipa/ca.crt ファイルを信頼ストア /etc/pki/ca-trust/source/anchors/ ディレクトリーにコピーします。
  2. 信頼ストアを更新するには、root で以下のコマンドを実行します。
    update-ca-trust extract

21.3.3. 認証局署名証明書を手動で管理する

認証局署名証明書を Identity Management 以外のメカニズムで管理するには、手動での設定が必要になります。
管理システムの証明書に署名する認証局の証明書を、すべてのクライアントが信頼するようにする必要があります。
  • デフォルトである認証局が信頼されている場合、これを達成するために実行が必要なステップはありません。
  • 認証局がデフォルトで信頼されていない場合、クライアントシステムと管理システムで証明書をインポートする必要があります。
    1. root で以下のコマンドを入力して、証明書を信頼ストアにコピーします。
      cp /path/to/ca.crt /etc/pki/ca-trust/source/anchors/ca.crt
    2. 信頼ストアを更新するには、root で以下のコマンドを実行します。
      update-ca-trust extract
管理システムで以下のステップを実行します。
  1. 新たな SSL 設定ファイル /etc/Pegasus/ssl.cnf を作成し、証明書についての情報を保管します。このファイルのコンテンツは、以下の例のようにする必要があります。
    [ req ]
    distinguished_name     = req_distinguished_name
    prompt                 = no
    [ req_distinguished_name ]
    C                      = US
    ST                     = Massachusetts
    L                      = Westford
    O                      = Fedora
    OU                     = Fedora OpenLMI
    CN                     = hostname
    hostname を管理システムの完全修飾ドメイン名に置き換えます。
  2. root で以下のコマンドを実行して、管理システム上で秘密鍵を生成します。
    openssl genrsa -out /etc/Pegasus/file.pem 1024
  3. root で以下のコマンドを実行し、証明書署名要求 (CSR) を生成します。
    openssl req -config /etc/Pegasus/ssl.cnf -new -key /etc/Pegasus/file.pem -out /etc/Pegasus/server.csr
  4. /etc/Pegasus/server.csr を認証局に送信して署名します。ファイル提出に関する詳細な手順は、個々の認証局によって異なります。
  5. 認証局から署名済み証明書を受け取ったら、/etc/Pegasus/server.pem として保存します。
  6. root で以下のコマンドを実行し、信頼できる認証局の証明書を Pegasus 信頼ストアにコピーして、Pegasus が自らの証明書を信頼できるようにします。
    cp /path/to/ca.crt /etc/Pegasus/client.pem
上記のステップをすべて完了したら、署名の認証局を信頼するクライアントが管理サーバーの CIMOM と正常に通信できるようなります。

重要

Identity Management ソリューションとは異なり、証明書の有効期限が切れて更新が必要となった場合には、上記の手動のステップは再度実行する必要があります。証明書は有効期限が切れる前に更新することが推奨されます。