1.3. 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.keyssl.cert がすでに作成されていることを前提としています。この手順では、これらのファイルを OpenShift Container Platform デプロイメント上の Red Hat Quay に統合する方法を示します。これにより、レジストリーが指定されたセキュリティー設定で動作し、組織の SSL/TLS ポリシーに準拠するようになります。

注記
  • HTTPS 証明書を使用して Red Hat Quay を保護するには、次の手順に従います。これは、認証局信頼バンドルの管理とは異なることに注意してください。CA 信頼バンドルは、Quay コンテナー内のシステムプロセスによって使用され、信頼できる CA に対して証明書を検証し、LDAP、ストレージバックエンド、OIDC 接続などのサービスが信頼されていることを確認します。
  • 既存のデプロイメントに証明書を追加する場合は、設定を変更しない場合でも、新規の設定バンドルシークレットに既存の config.yaml を含める必要があります。

1.3.1. カスタム SSL/TLS configBundleSecret リソースの作成

カスタム SSL/TLS 証明書を作成した後に Red Hat Quay on OpenShift Container Platform 用のカスタム configBundleSecret リソースを作成すると、ssl.cert ファイルssl.key ファイルをアップロードできるようになります。

前提条件

  • base64 で元の設定バンドルを config.yaml ファイルにデコードしている。詳細は、既存の設定のダウンロード を参照してください。
  • カスタム SSL 証明書とキーを生成している。

手順

  1. 新しい YAML ファイル (例: custom-ssl-config-bundle-secret.yaml) を作成します。

    $ touch custom-ssl-config-bundle-secret.yaml
  2. custom-ssl-config-bundle-secret リソースを作成します。

    1. 次のコマンドを入力してリソースを作成します。

      $ oc -n <namespace> create secret generic custom-ssl-config-bundle-secret \
        --from-file=config.yaml=</path/to/config.yaml> \ 1
        --from-file=ssl.cert=</path/to/ssl.cert> \ 2
        --from-file=extra_ca_cert_<name-of-certificate>.crt=ca-certificate-bundle.crt
       \ 3
        --from-file=ssl.key=</path/to/ssl.key> \ 4
        --dry-run=client -o yaml > custom-ssl-config-bundle-secret.yaml
      1
      <config.yaml>base64 でデコード された config.yaml ファイルです。
      2
      <ssl.cert>ssl.cert ファイルです。
      3
      オプション: --from-file=extra_ca_cert_<name-of-certificate>.crt=ca-certificate-bundle.crt フィールドにより、Red Hat Quay はカスタム認証局 (CA) ファイルを認識できるようになります。LDAP、OIDC、またはカスタム CA を使用する別のサービスを使用している場合は、extra_ca_cert パスを介してそれらを追加する必要があります。詳細は、「Red Hat Quay on OpenShift Container Platform への認証局のさらなる追加」を参照してください。
      4
      <ssl.key>ssl.key ファイルです。
  3. オプション: 次のコマンドを入力して、custom-ssl-config-bundle-secret.yaml ファイルの内容を確認できます。

    $ cat custom-ssl-config-bundle-secret.yaml

    出力例

    apiVersion: v1
    data:
      config.yaml: QUxMT1dfUFVMTFNfV0lUSE9VVF9TVFJJQ1RfTE9HR0lORzogZmFsc2UKQVVUSEVOVElDQVRJT05fVFlQRTogRGF0YWJhc2UKREVGQVVMVF9UQUdfRVhQSVJBVElPTjogMncKRElTVFJJQlVURURfU1R...
      ssl.cert: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVYakNDQTBhZ0F3SUJBZ0lVTUFBRk1YVWlWVHNoMGxNTWI3U1l0eFV5eTJjd0RRWUpLb1pJaHZjTkFRRUwKQlFBd2dZZ3hDekFKQmdOVkJBWVR...
      extra_ca_cert_<name-of-certificate>:LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVYakNDQTBhZ0F3SUJBZ0lVTUFBRk1YVWlWVHNoMGxNTWI3U1l0eFV5eTJjd0RRWUpLb1pJaHZjTkFRRUwKQlFBd2dZZ3hDe...
      ssl.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRQ2c0VWxZOVV1SVJPY1oKcFhpZk9MVEdqaS9neUxQMlpiMXQ...
    kind: Secret
    metadata:
      creationTimestamp: null
      name: custom-ssl-config-bundle-secret
      namespace: <namespace>

  4. 次のコマンドを入力して、configBundleSecret リソースを作成します。

    $ oc create -n <namespace> -f custom-ssl-config-bundle-secret.yaml

    出力例

    secret/custom-ssl-config-bundle-secret created

  5. 次のコマンドを入力して、QuayRegistry YAML ファイルを更新して、custom-ssl-config-bundle-secret オブジェクトを参照します。

    $ oc patch quayregistry <registry_name> -n <namespace> --type=merge -p '{"spec":{"configBundleSecret":"custom-ssl-config-bundle-secret"}}'

    出力例

    quayregistry.quay.redhat.com/example-registry patched

  6. 次のコマンドを入力して、QuayRegistry YAML の tls コンポーネントを false に設定します。

    $ oc patch quayregistry <registry_name> -n <namespace> --type=merge -p '{"spec":{"components":[{"kind":"tls","managed":false}]}}'

    出力例

    quayregistry.quay.redhat.com/example-registry patched

  7. 次のコマンドを入力して、QuayRegistry YAML ファイルが更新されてカスタム SSL configBundleSecret リソースが使用されるようになり、および tls リソースが false に設定されていることを確認します。

    $ oc get quayregistry <registry_name> -n <namespace> -o yaml

    出力例

    # ...
      configBundleSecret: custom-ssl-config-bundle-secret
    # ...
    spec:
      components:
      - kind: tls
        managed: false
    # ...

検証

  • 次のコマンドを入力して、サーバーとポートへの TLS 接続を確認します。

    $  openssl s_client -connect <quay-server.example.com>:443

    出力例

    # ...
    SSL-Session:
        Protocol  : TLSv1.3
        Cipher    : TLS_AES_256_GCM_SHA384
        Session-ID: 0E995850DC3A8EB1A838E2FF06CE56DBA81BD8443E7FA05895FBD6FBDE9FE737
        Session-ID-ctx:
        Resumption PSK: 1EA68F33C65A0F0FA2655BF9C1FE906152C6E3FEEE3AEB6B1B99BA7C41F06077989352C58E07CD2FBDC363FA8A542975
        PSK identity: None
        PSK identity hint: None
        SRP username: None
        TLS session ticket lifetime hint: 7200 (seconds)
    
    # ...

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.