第5章 Red Hat Quay コンテナーへの認証局の追加


extra_ca_certs ディレクトリーは、信頼できる証明書のセットを拡張するために認証局 (CA) を追加で保存できるディレクトリーです。これらの証明書は、Red Hat Quay によって外部サービスとの SSL/TLS 接続を検証するために使用されます。Red Hat Quay をデプロイするときに、必要な CA をこのディレクトリーに配置して、LDAP、OIDC、ストレージシステムなどのサービスへの接続が適切に保護され、検証されるようにすることができます。

スタンドアロンの Red Hat Quay デプロイメントの場合は、このディレクトリーを作成し、追加の CA 証明書をそのディレクトリーにコピーする必要があります。

前提条件

  • 希望するサービス用の CA があります。

手順

  1. 次のコマンドを入力して、コンテナーに追加する証明書を表示します。

    $ cat storage.crt

    出力例

    -----BEGIN CERTIFICATE-----
    MIIDTTCCAjWgAwIBAgIJAMVr9ngjJhzbMA0GCSqGSIb3DQEBCwUAMD0xCzAJBgNV...
    -----END CERTIFICATE-----

  2. 次のコマンドを入力して、Red Hat Quay ディレクトリーの /config フォルダーに extra_ca_certs を作成します。

    $ mkdir -p /path/to/quay_config_folder/extra_ca_certs
  3. CA ファイルを extra_ca_certs フォルダーにコピーします。以下に例を示します。

    $ cp storage.crt /path/to/quay_config_folder/extra_ca_certs/
  4. 次のコマンドを入力して、extra_ca_certs フォルダー内に storage.crt ファイルが存在することを確認します。

    $ tree /path/to/quay_config_folder/extra_ca_certs

    出力例

    /path/to/quay_config_folder/extra_ca_certs
    ├── storage.crt----

  5. 次のコマンドを入力して、QuayCONTAINER ID を取得します。

    $ podman ps

    出力例

    CONTAINER ID        IMAGE                                COMMAND                  CREATED             STATUS              PORTS
    5a3e82c4a75f        <registry>/<repo>/quay:{productminv} "/sbin/my_init"          24 hours ago        Up 18 hours         0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 443/tcp   grave_keller

  6. 次のコマンドを入力してコンテナーを再起動します。

    $ podman restart 5a3e82c4a75f
  7. 次のコマンドを実行して、証明書がコンテナー名前空間にコピーされたことを確認します。

    $ podman exec -it 5a3e82c4a75f cat /etc/ssl/certs/storage.pem

    出力例

    -----BEGIN CERTIFICATE-----
    MIIDTTCCAjWgAwIBAgIJAMVr9ngjJhzbMA0GCSqGSIb3DQEBCwUAMD0xCzAJBgNV...
    -----END CERTIFICATE-----

5.1. Red Hat Quay が Kubernetes にデプロイされている場合のカスタム SSL/TLS 証明書の追加

Kubernetes にデプロイすると、Red Hat Quay は config アセットを保存するボリュームとしてシークレットにマウントします。現在、これによりスーパーユーザーパネルの証明書のアップロード機能が中断されます。

一時的な回避策として、Red Hat Quay の デプロイ後 に、base64 でエンコードされた証明書をシークレットに追加できます。

Red Hat Quay が Kubernetes にデプロイされている場合は、次の手順を使用してカスタム SSL/TLS 証明書を追加します。

前提条件

  • Red Hat Quay がデプロイされている。
  • カスタムの ca.crt ファイルがある。

手順

  1. 次のコマンドを入力して、SSL/TLS 証明書の内容を Base64 でエンコードします。

    $ cat ca.crt | base64 -w 0

    出力例

    ...c1psWGpqeGlPQmNEWkJPMjJ5d0pDemVnR2QNCnRsbW9JdEF4YnFSdVd3PT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=

  2. 次の kubectl コマンドを入力して、quay-enterprise-config-secret ファイルを編集します。

    $ kubectl --namespace quay-enterprise edit secret/quay-enterprise-config-secret
  3. 証明書のエントリーを追加し、base64 でエンコードされた完全なストリンガーをエントリーの下に貼り付けます。以下に例を示します。

      custom-cert.crt:
    c1psWGpqeGlPQmNEWkJPMjJ5d0pDemVnR2QNCnRsbW9JdEF4YnFSdVd3PT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
  4. kubectl delete コマンドを使用して、すべての Red Hat Quay Pod を削除します。以下に例を示します。

    $ kubectl delete pod quay-operator.v3.7.1-6f9d859bd-p5ftc quayregistry-clair-postgres-7487f5bd86-xnxpr quayregistry-quay-app-upgrade-xq2v6  quayregistry-quay-database-859d5445ff-cqthr quayregistry-quay-redis-84f888776f-hhgms

    その後、Red Hat Quay デプロイメントにより、Pod を新しい証明書データに置き換えるスケジュールが自動的に設定されます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.