2.5. SSL 証明書を使用した Capsule Server の設定
Red Hat Satellite は SSL 証明書を使用して、Satellite Server、外部 Capsule Server、全ホストの間の暗号化通信を有効にします。組織の要件によっては、デフォルトの証明書またはカスタムの証明書で Capsule Server を設定する必要があります。
- また、デフォルトの SSL 証明書を使用する場合には、外部 Capsule Server ごとに異なるデフォルトの SSL 証明書を設定する必要があります。詳細は、「デフォルトの SSL 証明書を使用した Capsule Server の設定」 を参照してください。
- また、カスタムの SSL 証明書を使用する場合には、外部 Capsule Server ごとに異なるカスタムの SSL 証明書を使用して設定する必要があります。詳細は、「カスタム SSL 証明書を使用した Capsule Server の設定」 を参照してください。
2.5.1. デフォルトの SSL 証明書を使用した Capsule Server の設定
本セクションを使用して、Satellite Server のデフォルトの証明局 (CA) が署名した SSL 証明書を使用して Capsule Server を設定します。
前提条件
- Capsule Server が Satellite Server に登録されている。詳細は、Satellite Server への登録 を参照してください。
- Capsule Server パッケージがインストールされている。詳細は、Capsule Server パッケージのインストール を参照してください。
手順
Satellite Server で Capsule Server の全ソース証明書ファイルを保存するには、
root
ユーザーのみがアクセスできるディレクトリーを作成します (例:/root/capsule_cert
)。# mkdir /root/capsule_cert
Satellite Server で、Capsule Server の
/root/capsule_cert/capsule.example.com -certs.tar
証明書アーカイブを生成します。# capsule-certs-generate \ --foreman-proxy-fqdn capsule.example.com \ --certs-tar /root/capsule_cert/capsule.example.com-certs.tar
capsule-certs-generate
コマンドが返すsatellite-installer
コマンドのコピーをメモし、Capsule Server に証明書をデプロイします。capsule-certs-generate
の出力例output omitted satellite-installer --scenario capsule \ --certs-tar-file "/root/capsule_cert/capsule.example.com-certs.tar" \ --foreman-proxy-register-in-foreman "true" \ --foreman-proxy-foreman-base-url "https://satellite.example.com" \ --foreman-proxy-trusted-hosts "satellite.example.com" \ --foreman-proxy-trusted-hosts "capsule.example.com" \ --foreman-proxy-oauth-consumer-key "s97QxvUAgFNAQZNGg4F9zLq2biDsxM7f" \ --foreman-proxy-oauth-consumer-secret "6bpzAdMpRAfYaVZtaepYetomgBVQ6ehY"
Satellite Server から、証明書アーカイブファイルを Capsule Server にコピーします。
# scp /root/capsule_cert/capsule.example.com-certs.tar \ root@capsule.example.com:/root/capsule.example.com-certs.tar
Capsule Server で、証明書をデプロイするには、
capsule-certs-generate
コマンドにより返されたsatellite-installer
コマンドを入力します。Satellite へのネットワーク接続やポートをまだ開いていない場合は、
--foreman-proxy-register-in-foreman
オプションをfalse
に設定すると、Capsule が Satellite へ接続を試行しなくなり、エラー報告がなくなります。ネットワークとファイアウォールを適切に設定したら、このオプションをtrue
にして再度インストーラーを実行します。重要証明書のデプロイ後に、証明書のアーカイブファイルを削除しないでください。このアーカイブは、Capsule Server のアップグレード時などに必要になります。
2.5.2. カスタム SSL 証明書を使用した Capsule Server の設定
Satellite Server がカスタムの SSL 証明書を使用するように設定する場合は、この設定時に、外部の各 Capsule Server も、異なるカスタム SSL 証明書で設定する必要があります。
カスタム証明書を使用して Capsule Server を設定するには、Capsule Server ごとに以下の手順を実行します。
2.5.2.1. Capsule Server のカスタム SSL 証明書の作成
Satellite Server で、Capsule Server 用にカスタムの証明書を作成します。Capsule Server 用のカスタムの SSL 証明書がすでにある場合には、以下の手順は省略してください。
手順
ソースの証明書ファイルすべてを保存するには、
root
ユーザーだけがアクセスできるディレクトリーを作成します。# mkdir /root/capsule_cert
証明書署名要求 (CSR) に署名する秘密鍵を作成します。
秘密鍵は暗号化する必要がないことに注意してください。パスワードで保護された秘密鍵を使用する場合は、秘密鍵のパスワードを削除します。
この Capsule Server の秘密鍵がすでにある場合は、この手順を省略します。
# openssl genrsa -out
/root/capsule_cert/capsule_cert_key.pem
4096-
CSR 用の
/root/capsule_cert/openssl.cnf
設定ファイルを作成して、以下のコンテンツを追加します。
[ req ] req_extensions = v3_req distinguished_name = req_distinguished_name prompt = no [ req_distinguished_name ] CN = _{ssl-common-name}_ [ v3_req ] basicConstraints = CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection subjectAltName = @alt_names [ alt_names ] DNS.1 = _{ssl-common-name}_
オプション: CSR に識別名 (DN) の詳細を追加する場合は、
[ req_distinguished_name ]
セクションに次の情報を追加します。[req_distinguished_name] CN = capsule.example.com countryName =My_Country_Name 1 stateOrProvinceName = My_State_Or_Province_Name 2 localityName = My_Locality_Name 3 organizationName = My_Organization_Or_Company_Name organizationalUnitName = My_Organizational_Unit_Name 4
CSR を生成します。
# openssl req -new \ -key /root/capsule_cert/capsule_cert_key.pem \ 1 -config /root/capsule_cert/openssl.cnf \ 2 -out /root/capsule_cert/capsule_cert_csr.pem 3
認証局 (CA) に証明書署名要求を送信します。Satellite Server と Capsule Server の証明書には同じ CA が署名する必要があります。
要求を送信する場合は、証明書の有効期限を指定してください。証明書要求の送信方法にはさまざまなものがあるため、推奨される方法について CA にお問い合わせください。要求すると、CA バンドルと署名済み証明書を別々のファイルで受け取ることになります。
2.5.2.2. カスタムの SSL 証明書の Capsule Server へのデプロイ
この手順を使用して、証明局が署名したカスタムの SSL 証明書で、Capsule Server を設定します。capsule-certs-generate
コマンドにより返される、satellite-installer
コマンドは、Capsule Server ごとに一意となっています。複数の Capsule Server に同じコマンドを使用しないでください。
前提条件
- Satellite Server は、カスタムの証明書で設定されている。詳細は、オンラインネットワーク環境からの Satellite Server のインストール の カスタムの SSL 証明書を使用した Satellite Server の設定 を参照してください。
- Capsule Server が Satellite Server に登録されている。詳細は、Satellite Server への登録 を参照してください。
- Capsule Server パッケージがインストールされている。詳細は、Capsule Server パッケージのインストール を参照してください。
手順
Satellite Server で、カスタムの SSL 証明書の入力ファイルを検証します。
# katello-certs-check \ -t capsule -c /root/capsule_cert/capsule_cert.pem \ 1 -k /root/capsule_cert/capsule_cert_key.pem \ 2 -b /root/capsule_cert/ca_cert_bundle.pem 3
/root/capsule_cert/openssl.cnf
設定ファイルの証明書のコモンネームCN =
に、*
のワイルドカードの値を設定した場合には、katello-certs-check
コマンドに-t capsule
オプションを追加する必要があります。このコマンドに成功すると、
capsule-certs-generate
コマンド 2 つが返されます。このうちのいずれか 1 つを、Capsule Server の証明書アーカイブの生成に使用する必要があります。katello-certs-check
の出力例Validation succeeded. To use them inside a NEW $CAPSULE, run this command: capsule-certs-generate --foreman-proxy-fqdn "$CAPSULE" \ --certs-tar "~/$CAPSULE-certs.tar" \ --server-cert "/root/capsule_cert/capsule_cert.pem" \ --server-key "/root/capsule_cert/capsule_cert_key.pem" \ --server-ca-cert "/root/capsule_cert/ca_cert_bundle.pem" \ To use them inside an EXISTING $CAPSULE, run this command INSTEAD: capsule-certs-generate --foreman-proxy-fqdn "$CAPSULE" \ --certs-tar "~/$CAPSULE-certs.tar" \ --server-cert "/root/capsule_cert/capsule_cert.pem" \ --server-key "/root/capsule_cert/capsule_cert_key.pem" \ --server-ca-cert "/root/capsule_cert/ca_cert_bundle.pem" \ --certs-update-server
Satellite Server で、
katello-certs-check
コマンドの出力をもとに、要件に合わせて、capsule-certs-generate
コマンドを入力し、新規または既存の Capsule の証明書を生成します。このコマンドで
$CAPSULE
を Capsule Server の FQDN に変更します。capsule-certs-generate
コマンドが返すsatellite-installer
コマンドのコピーをメモし、Capsule Server に証明書をデプロイします。capsule-certs-generate
の出力例output omitted satellite-installer --scenario capsule \ --certs-tar-file "/root/capsule.example.com-certs.tar" \ --foreman-proxy-register-in-foreman "true" \ --foreman-proxy-foreman-base-url "https://satellite.example.com" \ --foreman-proxy-trusted-hosts "satellite.example.com" \ --foreman-proxy-trusted-hosts "capsule.example.com" \ --foreman-proxy-oauth-consumer-key "s97QxvUAgFNAQZNGg4F9zLq2biDsxM7f" \ --foreman-proxy-oauth-consumer-secret "6bpzAdMpRAfYaVZtaepYetomgBVQ6ehY"
Satellite Server から、証明書アーカイブファイルを Capsule Server にコピーします。
# scp /root/capsule_cert/capsule.example.com-certs.tar \ root@capsule.example.com:/root/capsule.example.com-certs.tar
Capsule Server で、証明書をデプロイするには、
capsule-certs-generate
コマンドにより返されたsatellite-installer
コマンドを入力します。Satellite へのネットワーク接続やポートをまだ開いていない場合は、
--foreman-proxy-register-in-foreman
オプションをfalse
に設定すると、Capsule が Satellite へ接続を試行しなくなり、エラー報告がなくなります。ネットワークとファイアウォールを適切に設定したら、このオプションをtrue
にして再度インストーラーを実行します。重要証明書のデプロイ後に、証明書のアーカイブファイルを削除しないでください。このアーカイブは、Capsule Server のアップグレード時などに必要になります。
2.5.2.3. ホストへの カスタム SSL 証明書のデプロイ
Capsule Server がカスタムの SSL 証明書を使用するよう設定した後に、Capsule Server に登録されている全ホストに katello-ca-consumer
パッケージもインストールする必要があります。
手順
各ホストに
katello-ca-consumer
パッケージをインストールします。# dnf install http://capsule.example.com/pub/katello-ca-consumer-latest.noarch.rpm