3.13. カスタムの SSL 証明書を使用した Satellite Server の設定

デフォルトでは、Red Hat Satellite は自己署名の SSL 証明書を使用して、Satellite Server、外部の Capsule Server および全ホストの間で暗号化した通信ができるようにします。Satellite の自己署名証明書を使用できない場合には、外部の認証局 (CA) で署名した SSL 証明書を使用するように Satellite Server を設定できます。

カスタム SSL 証明書を使用して Red Hat Satellite を設定する場合は、次の要件を満たす必要があります。

  • SSL 証明書には、Privacy-Enhanced Mail (PEM) エンコードを使用する必要があります。
  • Satellite Server と Capsule Server の両方に同じ SSL 証明書を使用しないでください。
  • Satellite Server と Capsule Server の証明書には同じ CA が署名する必要があります。
  • SSL 証明書は CA 証明書であってはなりません。
  • SSL 証明書には、共通名 (CN) と一致するサブジェクト代替名 (SAN) エントリーが含まれている必要があります。
  • SSL 証明書は、鍵用途エクステンションを使用した鍵暗号化が許可されている必要があります。
  • SSL 証明書は、CN に短縮名を使用することはできません。
  • 秘密鍵にパスフレーズを設定しないでください。

カスタムの証明書で Satellite Server を設定するには、以下の手順を実行します。

  1. 「Satellite Server 向けのカスタム SSL 証明書の作成」
  2. 「カスタムの SSL 証明書の Satellite Server へのデプロイ」
  3. 「ホストへの カスタム SSL 証明書のデプロイ」
  4. Satellite Server に外部の Capsule Server を登録した場合には、カスタムの SSL 証明書を使用して設定します。詳細は、Capsule Server のインストールカスタム SSL 証明書を使用した Capsule Server の設定 を参照してください。

3.13.1. Satellite Server 向けのカスタム SSL 証明書の作成

この手順を使用して、Satellite Server 用にカスタムの SSL 証明書を作成します。Satellite Server 用のカスタムの SSL 証明書がある場合にはこの手順は省略してください。

手順

  1. ソースの証明書ファイルすべてを保存するには、root ユーザーだけがアクセスできるディレクトリーを作成します。

    # mkdir /root/satellite_cert
  2. 証明書署名要求 (CSR) に署名する秘密鍵を作成します。

    秘密鍵は暗号化する必要がないことに注意してください。パスワードで保護された秘密鍵を使用する場合は、秘密鍵のパスワードを削除します。

    この Satellite Server の秘密鍵がすでにある場合は、この手順を省略します。

    # openssl genrsa -out /root/satellite_cert/satellite_cert_key.pem 4096
  3. CSR 用の /root/satellite_cert/openssl.cnf 設定ファイルを作成して、以下のコンテンツを追加します。

    [ req ]
    req_extensions = v3_req
    distinguished_name = req_distinguished_name
    x509_extensions = usr_cert
    prompt = no
    
    [ req_distinguished_name ]
    CN = satellite.example.com
    
    [ v3_req ]
    basicConstraints = CA:FALSE
    keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
    extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection
    subjectAltName = @alt_names
    
    [ usr_cert ]
    basicConstraints=CA:FALSE
    nsCertType = client, server, email
    keyUsage = nonRepudiation, digitalSignature, keyEncipherment
    extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection
    nsComment = "OpenSSL Generated Certificate"
    subjectKeyIdentifier=hash
    authorityKeyIdentifier=keyid,issuer
    
    [ alt_names ]
    DNS.1 = satellite.example.com
  4. CSR を生成します。

    # openssl req -new \
    -key /root/satellite_cert/satellite_cert_key.pem \ 1
    -config /root/satellite_cert/openssl.cnf \ 2
    -out /root/satellite_cert/satellite_cert_csr.pem 3
    1
    秘密鍵へのパス
    2
    設定ファイルへのパス
    3
    生成する CSR へのパス
  5. 認証局 (CA) に証明書署名要求を送信します。Satellite Server と Capsule Server の証明書には同じ CA が署名する必要があります。

    要求を送信する場合は、証明書の有効期限を指定してください。証明書要求の送信方法にはさまざまなものがあるため、推奨される方法について CA にお問い合わせください。要求すると、CA バンドルと署名済み証明書を別々のファイルで受け取ることになります。

3.13.2. カスタムの SSL 証明書の Satellite Server へのデプロイ

この手順を使用して、Satellite Server が、認証局で署名されたカスタムの SSL 署名書を使用するように設定します。katello-certs-check コマンドは、入力した証明書ファイルを検証して、Satellite Server にカスタムの SSL 証明書をデプロイするのに必要なコマンドを返します。

重要

SSL 証明書や .tar バンドルを /tmp/var/tmp ディレクトリーに保存しないでください。オペレーティングシステムは、これらのディレクトリーからファイルを定期的に削除します。その結果、機能の有効化または Satellite Server のアップグレード中に、satellite-installer の実行が失敗します。

手順

  1. カスタムの SSL 証明書入力ファイルを検証します。katello-certs-check コマンドが正しく実行されるには、証明書のコモンネーム (CN) が Satellite Server の FQDN と一致する必要があることに注意してください。

    # katello-certs-check \
    -c /root/satellite_cert/satellite_cert.pem \      1
    -k /root/satellite_cert/satellite_cert_key.pem \  2
    -b /root/satellite_cert/ca_cert_bundle.pem        3
    1
    認証局が署名した Satellite Server の証明書ファイルへのパス
    2
    Satellite Server 証明書の署名に使用された秘密鍵へのパス。
    3
    認証局バンドルへのパス

    このコマンドに成功すると、2 つの satellite-installer コマンドが返されます。1 つは、Satellite Server に証明書をデプロイするのに使用する必要があります。

    katello-certs-check の出力例

    Validation succeeded.
    
    To install the Red Hat Satellite Server with the custom certificates, run:
    
      satellite-installer --scenario satellite \
        --certs-server-cert "/root/satellite_cert/satellite_cert.pem" \
        --certs-server-key "/root/satellite_cert/satellite_cert_key.pem" \
        --certs-server-ca-cert "/root/satellite_cert/ca_cert_bundle.pem"
    
    To update the certificates on a currently running Red Hat Satellite installation, run:
    
      satellite-installer --scenario satellite \
        --certs-server-cert "/root/satellite_cert/satellite_cert.pem" \
        --certs-server-key "/root/satellite_cert/satellite_cert_key.pem" \
        --certs-server-ca-cert "/root/satellite_cert/ca_cert_bundle.pem" \
        --certs-update-server --certs-update-server-ca

    /root/ssl-build にアクセスしたり変更したりしないでください。

  2. 要件に合わせて katello-certs-check コマンドの出力から、satellite-installer コマンドを入力し、カスタムの SSL 証明書で新しい Satellite をインストールするか、現在実行中の Satellite の証明書を更新します。

    実行するコマンドが不明な場合には、/etc/foreman-installer/scenarios.d/.installed が存在するかをチェックし、Satellite がインストールされていることが確認できます。ファイルが存在する場合には、2 番目の satellite-installer コマンドを実行すると証明書が更新されます。

    重要

    証明書をデプロイした後、satellite-installer には証明書アーカイブファイルが必要になります。変更したり削除したりしないでください。Satellite Server のアップグレード時などに必要です。

  3. Satellite Server にネットワークでアクセスできるコンピューターで、この URL (https://satellite.example.com) に移動します。
  4. ブラウザーで、証明書の詳細を表示して、デプロイした証明書を確認します。

3.13.3. ホストへの カスタム SSL 証明書のデプロイ

Satellite Server がカスタムの SSL 証明書を使用する用に設定した後に、Satellite Server に登録されている全ホストに katello-ca-consumer パッケージもインストールする必要があります。

手順

  • 各ホストに katello-ca-consumer パッケージをインストールします。

    # dnf install http://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm