22.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 など多数の認証局) により署名される場合もあります。
ファイルシステムにおける、デフォルトの証明書とトラストストアの保存場所は、表22.2「証明書およびトラストストアの保存場所」 となります。
設定オプション | 場所 | 詳細 |
---|---|---|
|
| CIMOM の公開証明書 |
|
| CIMOM にのみ知られている秘密鍵 |
|
| 信頼できる証明書機関のリストを提供するファイルまたはディレクトリー |
表22.2「証明書およびトラストストアの保存場所」 にあるファイルを修正した場合は、tog-pegasus
サービスを再起動して新たな証明書が確実に認識されるようにします。サービスを再起動するには、root
でシェルプロンプトに以下のコマンドを入力します。
systemctl restart tog-pegasus.service
Red Hat Enterprise Linux 7 でシステムサービスを管理する方法は、10章systemd によるサービス管理 を参照してください。
22.3.1. 自己署名証明書の管理
自己署名証明書は、自身の秘密鍵を使用して署名し、その他の信頼チェーンには接続されません。管理システムでは、tog-pegasus
サービスを初めて起動する前に管理者が証明書を提供していない場合は、システムのプライマリーホスト名を証明書の件名にした自己署名証明書のセットが自動的に生成されます。
自動生成された自己署名証明書は、デフォルトで 10 年間有効ですが、自動的に更新する機能はありません。このような証明書を修正するには、OpenSSL または Mozilla NSS のドキュメンテーションが提供するガイドラインに従って、新たな証明書を手動で作成する必要があります。
クライアントシステムが自己署名証明書を信頼するように設定するには、以下の手順に従います。
管理システムから、クライアントシステムの
/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 を参照してください。チェックサムを元のファイルのものと比較して、クライアントシステムの証明書の整合性を検証します。管理システムの
/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 を管理システムのホスト名に置き換えます。
クライアントシステムでトラストストアを更新するには、
root
で以下のコマンドを実行します。update-ca-trust extract
22.3.2. Identity Management を使用した、認証局が署名した証明書の管理 (推奨)
Red Hat Enterprise Linux の Identity Management 機能は、ドメインに参加したシステムの SSL 証明書管理を簡素化するドメインコントローラーを提供します。Identity Management サーバーは、埋め込み認証局を提供します。クライアントシステムおよび管理システムをドメインに参加させる方法は、Red Hat Enterprise Linux 7 Linux ドメイン ID、認証、およびポリシーガイド または FreeIPA のドキュメントを参照してください。
管理システムでは、Identity Management への登録が必須になります。クライアントシステムでは、登録はオプションになります。
管理システムでは、以下の手順が必要です。
- Red Hat Enterprise Linux 7 Linux ドメイン ID、認証、およびポリシーガイド で説明されているように、ipa-client パッケージをインストールして、システムを Identity Management に登録します。
root
で以下のコマンドを入力して、Identity Management の署名した証明書をトラストストアにコピーします。cp /etc/ipa/ca.crt /etc/pki/ca-trust/source/anchors/ipa.crt
トラストストアを更新するには、
root
で以下のコマンドを実行します。update-ca-trust extract
権限のあるドメインユーザーとして以下のコマンドを実行して、Pegasus をサービスとして Identity Management ドメインに登録します。
ipa service-add CIMOM/hostname
hostname を管理システムのホスト名に置き換えます。
コマンドは、Identity Management ドメイン内のシステムで ipa-admintools パッケージがインストールされているものから実行できます。Identity Management にサービスエントリーが作成され、これを署名済み SSL 証明書の生成に使用できるようになります。
-
/etc/Pegasus/
ディレクトリーにある PEM ファイルのバックアップを作成します (推奨)。 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
デーモンにより、証明書が必要に応じて最新に保たれ、更新されます。詳細情報は、Red Hat Enterprise Linux 7 Linux ドメイン ID、認証、およびポリシーガイド を参照してください。
クライアントシステムを登録して、トラストストアを更新するには、以下のステップに従います。
- Red Hat Enterprise Linux 7 Linux ドメイン ID、認証、およびポリシーガイド で説明されているように、ipa-client パッケージをインストールして、システムを Identity Management に登録します。
root
で以下のコマンドを入力して、Identity Management の署名した証明書をトラストストアにコピーします。cp /etc/ipa/ca.crt /etc/pki/ca-trust/source/anchors/ipa.crt
トラストストアを更新するには、
root
で以下のコマンドを実行します。update-ca-trust extract
クライアントシステムを Identity Management に登録しない場合は、以下の手順に従ってトラストストアを更新します。
-
root
として、同一の Identity Management ドメインに参加しているその他のシステムから、安全に/etc/ipa/ca.crt
ファイルをトラストストア/etc/pki/ca-trust/source/anchors/
ディレクトリーにコピーします。 トラストストアを更新するには、
root
で以下のコマンドを実行します。update-ca-trust extract
22.3.3. 認証局が署名する証明書を手動で管理
認証局が署名する証明書を Identity Management 以外のメカニズムで管理するには、手動での設定が必要になります。
管理システムの証明書に署名する認証局の証明書を、すべてのクライアントが信頼するようにする必要があります。
- 認証局がデフォルトで信頼されている場合は、信頼させるのに必要な手順はありません。
認証局がデフォルトで信頼されていない場合は、クライアントシステムと管理システムで証明書をインポートする必要があります。
root
で以下のコマンドを入力して、証明書をトラストストアにコピーします。cp /path/to/ca.crt /etc/pki/ca-trust/source/anchors/ca.crt
トラストストアを更新するには、
root
で以下のコマンドを実行します。update-ca-trust extract
管理システムで以下のステップを実行します。
新たな 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 を、管理システムの完全修飾ドメイン名に置き換えます。
root
で以下のコマンドを実行して、管理システムで秘密鍵を生成します。openssl genrsa -out /etc/Pegasus/file.pem 1024
root
で以下のコマンドを実行し、証明書の署名要求 (CSR) を生成します。openssl req -config /etc/Pegasus/ssl.cnf -new -key /etc/Pegasus/file.pem -out /etc/Pegasus/server.csr
-
/etc/Pegasus/server.csr
を認証局に送信して署名します。ファイル提出に関する詳細な手順は、個々の認証局によって異なります。 -
認証局から署名済み証明書を受け取ったら、
/etc/Pegasus/server.pem
として保存します。 root
で以下のコマンドを実行し、信頼できる認証局の証明書を Pegasus トラストストアにコピーして、Pegasus が自らの証明書を信頼できるようにします。cp /path/to/ca.crt /etc/Pegasus/client.pem
上記の手順をすべて完了したら、署名の認証局を信頼するクライアントが、管理サーバーの CIMOM と正常に通信できるようなります。
Identity Management ソリューションとは異なり、証明書の有効期限が切れて更新が必要となった場合には、上記の手動の手順を再度実行する必要があります。証明書は有効期限が切れる前に更新することが推奨されます。