第2章 認証とセキュリティー
2.1. TLS/SSL 証明書
Red Hat Virtualization API には Hypertext Transfer Protocol Secure (HTTPS) が必要です。 [1] SDK や CLI コンポーネントなどのクライアントソフトウェアとのセキュアな対話これには、サーバーが使用する CA 証明書を取得して、クライアントの証明書ストアにインポートする必要があります。
2.1.1. CA 証明書の取得
Red Hat Virtualization Manager から CA 証明書を取得し、以下のいずれかの方法でクライアントマシンに転送できます。
- 方法 1
CA 証明書の取得で推奨の方法は、
openssl s_client
コマンドラインツールを使用してサーバーとの実際の TLS ハンドシェイクを実行し、サーバーが提示する証明書を抽出する方法です。以下のようなコマンドを実行します。$ openssl s_client \ -connect myengine.example.com:443 \ -showcerts \ < /dev/null
このコマンドはサーバーに接続し、以下のような出力を表示します。
CONNECTED(00000003) depth=1 C = US, O = Example Inc., CN = myengine.example.com.23416 verify error:num=19:self signed certificate in certificate chain --- Certificate chain 0 s:/C=US/O=Example Inc./CN=myengine.example.com i:/C=US/O=Example Inc./CN=myengine.example.com.23416 -----BEGIN CERTIFICATE----- MIIEaTCCA1GgAwIBAgICEAQwDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCVVMx FTATBgNVBAoTDEV4YW1wbGUgSW5jLjEjMCEGA1UEAxMaZW5naW5lNDEuZXhhbXBs SVlJe7e5FTEtHJGTAeWWM6dGbsFhip5VXM0gfqg= -----END CERTIFICATE----- 1 s:/C=US/O=Example Inc./CN=myengine.example.com.23416 i:/C=US/O=Example Inc./CN=myengine.example.com.23416 -----BEGIN CERTIFICATE----- MIIDxjCCAq6gAwIBAgICEAAwDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCVVMx FTATBgNVBAoTDEV4YW1wbGUgSW5jLjEjMCEGA1UEAxMaZW5naW5lNDEuZXhhbXBs Pkyg1rQHR6ebGQ== -----END CERTIFICATE-----
-
-----BEGIN CERTIFICATE-----
と-----END CERTIFICATE-----
のマークの間のテキストは、サーバーで提示された証明書が表示されます。最初のものはサーバー自体の証明書で、最後の証明書は CA の証明書です。これらのマークを含む CA 証明書をca.crt
ファイルにコピーします。結果は以下のようになります。-----BEGIN CERTIFICATE----- MIIDxjCCAq6gAwIBAgICEAAwDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCVVMx FTATBgNVBAoTDEV4YW1wbGUgSW5jLjEjMCEGA1UEAxMaZW5naW5lNDEuZXhhbXBs Pkyg1rQHR6ebGQ== -----END CERTIFICATE-----
重要これは、サーバーが使用する CA 証明書を取得する最も信頼性の高い方法です。ここで説明されている残りの方法はほとんどの場合に機能しますが、サーバーの管理者が手動で置き換えられた場合は、正しい CA 証明書は取得されません。
- 方法 2
上記の
openssl s_client
メソッドを使用できない場合は、コマンドラインツールを使用して Red Hat Virtualization Manager から CA 証明書をダウンロードできます。コマンドラインツールの例には、
curl
とwget
などがあります。これらはいずれも、複数のプラットフォームで利用できます。curl
を使用している場合:$ curl \ --output ca.crt \ 'http://myengine.example.com/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA'
wget
を使用している場合:$ wget \ --output-document ca.crt \ 'http://myengine.example.com/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA'
- 方法 3
Web ブラウザーを使用して、配置されている証明書に移動します。
https://myengine.example.com/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA
選択したブラウザーに応じて、証明書はブラウザーのキーストアにダウンロードまたはインポートします。
-
ブラウザーにより証明書がダウンロードされた場合 には、ファイルを
ca.crt
として保存します。 -
ブラウザーにより証明書がインポートされた場合 には、ブラウザーの認定オプションから証明書をエクスポートし、
ca.crt
として保存します。
-
ブラウザーにより証明書がダウンロードされた場合 には、ファイルを
- 方法 4
Red Hat Virtualization Manager にログインし、トラストストアから証明書をエクスポートして、クライアントマシンにコピーします。
-
Red Hat Virtualization Manager マシンに
root
としてログインします。 Java
keytool
管理ユーティリティーを使用して、トラストストアから証明書をエクスポートします。# keytool \ -keystore /etc/pki/ovirt-engine/.truststore \ -storepass mypass \ -exportcert \ -alias cacert \ -rfc \ -file ca.crt
これにより、
ca.crt
という名前の証明書ファイルが作成されます。scp
コマンドを使用して、証明書をクライアントマシンにコピーします。$ scp ca.crt myuser@myclient.example.com:/home/myuser/.
-
Red Hat Virtualization Manager マシンに
これらの各メソッドにより、クライアントマシンの ca.crt
という名前の証明書ファイルが作成されます。次に、このファイルをクライアントの証明書ストアにインポートする必要があります。
2.1.2. クライアントへの証明書のインポート
クライアントへの証明書のインポートは、クライアントが証明書を保存し、解釈する方法に依存します。証明書のインポートに関する詳細は、クライアントのドキュメントを参照してください。