第10章 Red Hat Quay on OpenShift Container Platform のカスタム SSL/TLS 証明書の設定
Red Hat Quay が OpenShift Container Platform にデプロイされると、QuayRegistry
カスタムリソース定義 (CRD) の tls
コンポーネントはデフォルトで managed
に設定されます。その結果、OpenShift Container Platform の認証局が HTTPS エンドポイントの作成と SSL/TLS 証明書のローテーションに使用されます。
OpenShift Container Platform への Red Hat Quay の初期デプロイメントの前または後に、カスタム SSL/TLS 証明書を設定できます。このプロセスには、QuayRegistry
YAML ファイル内の configBundleSecret
リソースを作成または更新してカスタム証明書を統合し、tls
コンポーネントを unmanaged
に設定することが含まれます。
Red Hat Quay のカスタム SSL/TLS 証明書を設定する場合、管理者が証明書をローテーションします。
以下の手順により、カスタム SSL/TLS 証明書を適用して安全な通信を確保し、OpenShift Container Platform デプロイメント上の Red Hat Quay の特定のセキュリティー要件を満たすことができます。これらの手順では、認証局 (CA) バンドルまたは ssl.key
と ssl.cert
がすでに作成されていることを前提としています。この手順では、これらのファイルを OpenShift Container Platform デプロイメント上の Red Hat Quay に統合する方法を示します。これにより、レジストリーが指定されたセキュリティー設定で動作し、組織の SSL/TLS ポリシーに準拠するようになります。
-
HTTPS 証明書を使用して Red Hat Quay を保護するには、次の手順に従います。これは、認証局信頼バンドルの管理とは異なることに注意してください。CA 信頼バンドルは、
Quay
コンテナー内のシステムプロセスによって使用され、信頼できる CA に対して証明書を検証し、LDAP、ストレージバックエンド、OIDC 接続などのサービスが信頼されていることを確認します。 -
既存のデプロイメントに証明書を追加する場合は、設定を変更しない場合でも、新規の設定バンドルシークレットに既存の
config.yaml
を含める必要があります。
10.1. 認証局の作成
独自の CA を設定し、それを使用してドメインのサーバー証明書を発行するには、次の手順に従います。これにより、独自の証明書を使用して SSL/TLS による通信を保護できます。
手順
次のコマンドを入力して、ルート CA キーを生成します。
$ openssl genrsa -out rootCA.key 2048
次のコマンドを入力して、ルート CA 証明書を生成します。
$ openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem
サーバーのホスト名など、証明書の要求に組み込まれる情報を入力します。以下に例を示します。
Country Name (2 letter code) [XX]:IE State or Province Name (full name) []:GALWAY Locality Name (eg, city) [Default City]:GALWAY Organization Name (eg, company) [Default Company Ltd]:QUAY Organizational Unit Name (eg, section) []:DOCS Common Name (eg, your name or your server's hostname) []:quay-server.example.com
次のコマンドを入力してサーバーキーを生成します。
$ openssl genrsa -out ssl.key 2048
次のコマンドを入力して、署名リクエストを生成します。
$ openssl req -new -key ssl.key -out ssl.csr
サーバーのホスト名など、証明書の要求に組み込まれる情報を入力します。以下に例を示します。
Country Name (2 letter code) [XX]:IE State or Province Name (full name) []:GALWAY Locality Name (eg, city) [Default City]:GALWAY Organization Name (eg, company) [Default Company Ltd]:QUAY Organizational Unit Name (eg, section) []:DOCS Common Name (eg, your name or your server's hostname) []:quay-server.example.com Email Address []:
以下のようにサーバーのホスト名を指定して、設定ファイルの
openssl.cnf
を作成します。openssl.cnf
ファイルの例[req] req_extensions = v3_req distinguished_name = req_distinguished_name [req_distinguished_name] [ v3_req ] basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment subjectAltName = @alt_names [alt_names] DNS.1 = <quay-server.example.com> IP.1 = 192.168.1.112
設定ファイルを使用して、証明書
ssl.cert
を生成します。$ openssl x509 -req -in ssl.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out ssl.cert -days 356 -extensions v3_req -extfile openssl.cnf
次のコマンドを入力して、作成した証明書とファイルを確認します。
$ ls /path/to/certificates
出力例
rootCA.key ssl-bundle.cert ssl.key custom-ssl-config-bundle-secret.yaml rootCA.pem ssl.cert openssl.cnf rootCA.srl ssl.csr