第3章 Red Hat Quay の高度なデプロイメント
3.1. SSL を使用した Red Hat Quay への接続の保護 リンクのコピーリンクがクリップボードにコピーされました!
3.1.1. SSL の使用について リンクのコピーリンクがクリップボードにコピーされました!
自己署名証明書で Red Hat Quay を設定するには、認証局 (CA) を作成し、必要なキーおよび証明書ファイルを生成する必要があります。
以下の例では、/etc/hosts ファイルにエントリーを追加するなど、DNS または別の命名メカニズムを使用してサーバーホスト名 quay-server.example.com を設定していることを前提としています。
cat /etc/hosts ... 192.168.1.112 quay-server.example.com
$ cat /etc/hosts
...
192.168.1.112 quay-server.example.com
3.1.2. 認証局を作成し、証明書に署名します。 リンクのコピーリンクがクリップボードにコピーされました!
この手順の最後に、証明書ファイルと、ssl.cert および ssl.key という名前のプライマリーキーファイルがあります。
3.1.2.1. 認証局の作成 リンクのコピーリンクがクリップボードにコピーされました!
ルート CA キーを生成します。
openssl genrsa -out rootCA.key 2048
$ openssl genrsa -out rootCA.key 2048Copy to Clipboard Copied! Toggle word wrap Toggle overflow ルート CA 証明書を生成します。
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem
$ openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーのホスト名など、証明書の要求に組み込まれる情報を入力します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.2.2. 証明書に署名します。 リンクのコピーリンクがクリップボードにコピーされました!
サーバーキーを生成します。
openssl genrsa -out ssl.key 2048
$ openssl genrsa -out ssl.key 2048Copy to Clipboard Copied! Toggle word wrap Toggle overflow 署名要求を生成します。
openssl req -new -key ssl.key -out ssl.csr
$ openssl req -new -key ssl.key -out ssl.csrCopy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーのホスト名など、証明書の要求に組み込まれる情報を入力します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のようにサーバーのホスト名を指定して、設定ファイルの
openssl.cnfを作成します。opensssl.cnf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 設定ファイルを使用して、証明書
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
$ openssl x509 -req -in ssl.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out ssl.cert -days 356 -extensions v3_req -extfile openssl.cnfCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.3. UI を使用した SSL の設定 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Quay UI を使用して SSL を設定します。コマンドラインインターフェースを使用して SSL を設定するには、以下のセクションを参照してください。
Quayコンテナーを設定モードで起動します。sudo podman run --rm -it --name quay_config -p 80:8080 -p 443:8443 registry.redhat.io/quay/quay-rhel8:v3.5.4 config secret
$ sudo podman run --rm -it --name quay_config -p 80:8080 -p 443:8443 registry.redhat.io/quay/quay-rhel8:v3.5.4 config secretCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Server Configuration セクションで、TLS に
Red Hat Quay handle TLSを選択します。先に作成した証明書ファイルとプライベートキーファイルをアップロードし、証明書の作成時に Server Hostname が使用された値と一致することを確認します。更新された設定の検証およびダウンロード Quayコンテナーを停止し、レジストリーを再起動します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.4. コマンドラインを使用した SSL の設定 リンクのコピーリンクがクリップボードにコピーされました!
別のオプションとして、コマンドラインインターフェースを使用できます。
証明書ファイルとプライマリーキーファイルを設定ディレクトリーにコピーして、それぞれ
ssl.certとssl.keyという名前が付けられていることを確認します。cp ~/ssl.cert $QUAY/config cp ~/ssl.key $QUAY/config cd $QUAY/config
$ cp ~/ssl.cert $QUAY/config $ cp ~/ssl.key $QUAY/config $ cd $QUAY/configCopy to Clipboard Copied! Toggle word wrap Toggle overflow config.yamlファイルを編集し、Quay で TLS を処理できるように指定します。config.yaml
... SERVER_HOSTNAME: quay-server.example.com ... PREFERRED_URL_SCHEME: https ...
... SERVER_HOSTNAME: quay-server.example.com ... PREFERRED_URL_SCHEME: https ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow Quayコンテナーを停止し、レジストリーを再起動します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.5. コマンドラインを使用した SSL 設定のテスト リンクのコピーリンクがクリップボードにコピーされました!
podman loginコマンドを使用して、SSL が有効にされている Quay レジストリーへのログインを試みます。sudo podman login quay-server.example.com
$ sudo podman login quay-server.example.com Username: quayadmin Password: Error: error authenticating creds for "quay-server.example.com": error pinging docker registry quay-server.example.com: Get "https://quay-server.example.com/v2/": x509: certificate signed by unknown authorityCopy to Clipboard Copied! Toggle word wrap Toggle overflow Podman は自己署名証明書を信頼しません。回避策として、
--tls-verifyオプションを使用します。sudo podman login --tls-verify=false quay-server.example.com
$ sudo podman login --tls-verify=false quay-server.example.com Username: quayadmin Password: Login Succeeded!Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ルート認証局 (CA) を信頼するように Podman を設定する方法は、後続のセクションで説明します。
3.1.6. ブラウザーを使用した SSL 設定のテスト リンクのコピーリンクがクリップボードにコピーされました!
Quay レジストリーへのアクセスを試みると (この場合は https://quay-server.example.com)、ブラウザーは潜在的なリスクについて警告します。
画面にログインすると、ブラウザーは接続が安全ではないことを通知します。
ルート認証局 (CA) を信頼するようにシステムを設定する方法は、後続のセクションで説明します。
3.1.7. 認証局を信頼するように podman を設定する リンクのコピーリンクがクリップボードにコピーされました!
Podman は、/etc/containers/certs.d/ および /etc/docker/certs.d/ の 2 つのパスを使用して CA ファイルを見つけます。
ルート CA ファイルをこれらの場所のいずれかにコピーし、サーバーのホスト名によって判別されるパスを使用して、
ca.crtファイルに名前を付けます。sudo cp rootCA.pem /etc/containers/certs.d/quay-server.example.com/ca.crt
$ sudo cp rootCA.pem /etc/containers/certs.d/quay-server.example.com/ca.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow または、Docker を使用している場合は、ルート CA ファイルを同等の Docker ディレクトリーにコピーします。
sudo cp rootCA.pem /etc/docker/certs.d/quay-server.example.com/ca.crt
$ sudo cp rootCA.pem /etc/docker/certs.d/quay-server.example.com/ca.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow
レジストリーにログインする際に、--tls-verify=false オプションを使用する必要がなくなります。
sudo podman login quay-server.example.com
$ sudo podman login quay-server.example.com
Username: quayadmin
Password:
Login Succeeded!
3.1.8. 認証局を信頼するようにシステムを設定する リンクのコピーリンクがクリップボードにコピーされました!
ルート CA ファイルを統合されたシステム全体のトラストストアにコピーします。
sudo cp rootCA.pem /etc/pki/ca-trust/source/anchors/
$ sudo cp rootCA.pem /etc/pki/ca-trust/source/anchors/Copy to Clipboard Copied! Toggle word wrap Toggle overflow システム全体のトラストストア設定を更新します。
sudo update-ca-trust extract
$ sudo update-ca-trust extractCopy to Clipboard Copied! Toggle word wrap Toggle overflow trust listコマンドを使用して、Quay サーバーが設定されていることを確認できます。trust list | grep quay
$ trust list | grep quay label: quay-server.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow https://quay-server.example.comでレジストリーを参照すると、接続が安全であることを示すロックアイコンが表示されます。
システム全体の信頼からルート CA を削除するには、ファイルを削除し、設定を更新します。
sudo rm /etc/pki/ca-trust/source/anchors/rootCA.pem sudo update-ca-trust extract trust list | grep quay
$ sudo rm /etc/pki/ca-trust/source/anchors/rootCA.pem $ sudo update-ca-trust extract $ trust list | grep quay $Copy to Clipboard Copied! Toggle word wrap Toggle overflow
詳細は、RHEL 8 のドキュメントの共有システム証明書の使用について参照してください。