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

OpenLMI は、HTTP トランスポート層で機能する WBEM (Web-Based Enterprise Management) プロトコルを使用します。標準の 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/pki/ca-trust/source/anchors/ ディレクトリーに、/etc/Pegasus/server.pem 証明書をコピーします。これを行うするには、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 を管理システムのホスト名に置き換えます。
    コマンドは、Identity Management ドメイン内のシステムで ipa-admintools パッケージがインストールされているものから実行できます。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 ソリューションとは異なり、証明書の有効期限が切れて更新が必要となった場合には、上記の手動の手順を再度実行する必要があります。証明書は有効期限が切れる前に更新することが推奨されます。