4.4. Beast の SSL の設定
Beast フロントエンド Web サーバーが OpenSSL ライブラリーを使用して Transport Layer Security (TLS) を提供するように設定できます。Beast で Secure Socket Layer (SSL) を使用するには、Ceph Object Gateway ノードのホスト名と一致する認証局 (CA) から証明書を取得する必要があります。また、Beast は、1 つ .pem ファイルに秘密鍵、サーバー証明書、およびその他の CA を含める必要があります。
秘密鍵ハッシュが含まれているため、.pem ファイルへ不正アクセスされないようにします。
Red Hat は、SAN (Subject Alternative Name) フィールドと S3 スタイルのサブドメインで使用するワイルドカードを使用して CA から証明書を取得することを推奨します。
Ceph Object Gateway がクライアントとして機能し、サーバー上でカスタム証明書が使用されている場合は、カスタム CA をノードにインポートし、Ceph Object Gateway 仕様ファイルの extra_container_args パラメーターを使用して etc/pki ディレクトリーをコンテナーにマッピングすることで、カスタム CA を挿入できます。
前提条件
- 実行中、および正常な Red Hat Ceph Storage クラスター
- Ceph Object Gateway ソフトウェアパッケージのインストール
- OpenSSL ソフトウェアパッケージのインストール
- Ceph Object Gateway ノードへのルートレベルのアクセスがある。
手順
現在のディレクトリーに
rgw.ymlという名前の新規ファイルを作成します。例
[ceph: root@host01 /]# touch rgw.yml編集する
rgw.ymlファイルを開き、環境に合わせてカスタマイズします。構文
service_type: rgw service_id: SERVICE_ID service_name: SERVICE_NAME placement: hosts: - HOST_NAME spec: ssl: true rgw_frontend_ssl_certificate: CERT_HASH例
service_type: rgw service_id: foo service_name: rgw.foo placement: hosts: - host01 spec: ssl: true rgw_frontend_ssl_certificate: | -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEA+Cf4l9OagD6x67HhdCy4Asqw89Zz9ZuGbH50/7ltIMQpJJU0 gu9ObNtIoC0zabJ7n1jujueYgIpOqGnhRSvsGJiEkgN81NLQ9rqAVaGpadjrNLcM bpgqJCZj0vzzmtFBCtenpb5l/EccMFcAydGtGeLP33SaWiZ4Rne56GBInk6SATI/ JSKweGD1y5GiAWipBR4C74HiAW9q6hCOuSdp/2WQxWT3T1j2sjlqxkHdtInUtwOm j5Ism276IndeQ9hR3reFR8PJnKIPx73oTBQ7p9CMR1J4ucq9Ny0J12wQYT00fmJp -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- MIIEBTCCAu2gAwIBAgIUGfYFsj8HyA9Zv2l600hxzT8+gG4wDQYJKoZIhvcNAQEL BQAwgYkxCzAJBgNVBAYTAklOMQwwCgYDVQQIDANLQVIxDDAKBgNVBAcMA0JMUjEM MAoGA1UECgwDUkhUMQswCQYDVQQLDAJCVTEkMCIGA1UEAwwbY2VwaC1zc2wtcmhj czUtOGRjeHY2LW5vZGU1MR0wGwYJKoZIhvcNAQkBFg5hYmNAcmVkaGF0LmNvbTAe -----END CERTIFICATE-----サービス仕様ファイルを使用して Ceph Object Gateway をデプロイします。
例
[ceph: root@host01 /]# ceph orch apply -i rgw.yml
4.4.1. SAN 設定で自己署名 Cephadm 証明書をデプロイする リンクのコピーリンクがクリップボードにコピーされました!
マルチサイトまたはマルチドメイン Ceph 環境の RGW ノード間の通信を保護するには、Ceph Object Gateway (RGW) のサブジェクト代替名 (SAN) エントリーを使用した自己署名 SSL/TLS 証明書の設定が不可欠です。このプロセスにより、管理者は複数のドメイン名またはホスト名をサポートする証明書の生成とデプロイメントを自動化できるため、分散デプロイメントの柔軟性が向上し、セキュリティーが強化されます。
SAN 設定で自己署名 Cephadm 証明書をデプロイすると、以下のことが可能になります。
- RGW サービスの SSL/TLS 証明書を自動的に生成してデプロイします。
- さまざまなドメインまたはホスト名をサポートするために、複数の SAN エントリーを含めます。
- 地理的リージョンやドメイン境界を越えても、異なる Ceph クラスター間の RGW ノード間の通信を安全に行います。
このアプローチは、参加しているすべてのノード間の通信を暗号化することで、安全でスケーラブルなマルチサイト RGW のデプロイメントを簡素化します。
前提条件
始める前に、次の前提条件が満たされていることを確認してください。
- 実行中、および正常な Red Hat Ceph Storage クラスター
- Ceph Object Gateway ソフトウェアパッケージのインストール
- OpenSSL ソフトウェアパッケージのインストール
- Ceph Object Gateway ノードへのルートレベルのアクセスがある。
手順
現在のディレクトリーに
rgw.ymlという名前の新規ファイルを作成します。例
[ceph: root@host01 /]# touch rgw.yml編集する
rgw.ymlファイルを開き、環境に合わせてカスタマイズします。構文
service_type: rgw service_id: SERVICE_ID service_name: SERVICE_NAME placement: hosts: - HOST_NAME spec: ssl: true rgw_frontend_ssl_certificate: CERT_HASH例
service_type: rgw service_id: foo service_name: rgw.foo placement: hosts: - host01 spec: ssl: true rgw_frontend_ssl_certificate: | -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEA+Cf4l9OagD6x67HhdCy4Asqw89Zz9ZuGbH50/7ltIMQpJJU0 gu9ObNtIoC0zabJ7n1jujueYgIpOqGnhRSvsGJiEkgN81NLQ9rqAVaGpadjrNLcM bpgqJCZj0vzzmtFBCtenpb5l/EccMFcAydGtGeLP33SaWiZ4Rne56GBInk6SATI/ JSKweGD1y5GiAWipBR4C74HiAW9q6hCOuSdp/2WQxWT3T1j2sjlqxkHdtInUtwOm j5Ism276IndeQ9hR3reFR8PJnKIPx73oTBQ7p9CMR1J4ucq9Ny0J12wQYT00fmJp -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- MIIEBTCCAu2gAwIBAgIUGfYFsj8HyA9Zv2l600hxzT8+gG4wDQYJKoZIhvcNAQEL BQAwgYkxCzAJBgNVBAYTAklOMQwwCgYDVQQIDANLQVIxDDAKBgNVBAcMA0JMUjEM MAoGA1UECgwDUkhUMQswCQYDVQQLDAJCVTEkMCIGA1UEAwwbY2VwaC1zc2wtcmhj czUtOGRjeHY2LW5vZGU1MR0wGwYJKoZIhvcNAQkBFg5hYmNAcmVkaGF0LmNvbTAe -----END CERTIFICATE-----SSL 設定と SAN 設定を含むサービス仕様ファイルを使用して、Ceph Object Gateway をデプロイします。
注記SSL を使用して
rgwサービスをデプロイする前に、必ずrgw_realm、rgw_zone、およびrgw_zonegroupを作成してください。例
# cat rgw_spec.yaml service_type: rgw service_id: bar service_name: rgw.bar placement: hosts: - ceph-pri-hsm-squid-j9zu1f-node5 spec: rgw_frontend_port: 8085 generate_cert: true rgw_realm: india rgw_zone: primary rgw_zonegroup: shared ssl: true zonegroup_hostnames: - s3.example.com - s3.zone1.example.com
検証
Ceph Object Gateway (rgw) デーモンがデプロイされたら、証明書を検証します。
証明書を取得します。
構文
ceph orch cert-store get cert rgw_frontend_ssl_cert --service-name RGW_SERVICE_NAMEOpenSSL を使用して証明書の SAN フィールドを確認します。
構文
[root@vm-00 ~]# openssl x509 -in rgw_cert.txt -noout -text例
X509v3 extensions: X509v3 Subject Alternative Name: DNS:s3.zone1.example.com, DNS:s3.example.comX509v3 サブジェクト代替名セクションには、
rgwサービス仕様で定義されたzonegroup_hostnamesに基づいて設定された SAN が表示されます。
Ceph Object Gateway は、マルチゾーンまたはマルチリージョンのデプロイメントに必要な複数のホスト名またはドメインをサポートするための SAN の変更など、SSL/TLS 証明書で設定されるようになりました。