19.2. Squid プロキシー
19.2.1. Squid プロキシーのインストールと設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
概要
本セクションでは、ユーザーポータルへの Squid プロキシーのインストールと設定方法を説明します。Squid プロキシーサーバーは、頻繁に閲覧されるコンテンツをキャッシュして帯域幅を削減し、応答時間を向上させるコンテンツアクセラレーターとして使用されます。
手順19.4 Squid プロキシーの設定
- Squid プロキシーの HTTPS ポート用のキーペアと証明書を取得します。このキーペアは、別の SSL/TLS サービス用のキーペアを取得するのと同じ方法で取得することができます。キーペアは 2 つの PEM ファイルの形式となっており、これらのファイルには秘密鍵と署名済み証明書が含まれています。この手順では、これらのファイル名を
proxy.keyおよびproxy.cerと仮定します。注記
キーペアと証明書は、engine の認証局を使用して生成することもできます。プロキシーに秘密鍵と証明書が設定されており、engine の認証局で生成しない場合は、次の手順は省略してください。 - プロキシーのホスト名を選択し、次にプロキシー用の証明書の識別名のその他のコンポーネントを選択します。
注記
engine 自体が使用しているのと同じ国や組織名を使用するのが適切なプラクティスです。Manager がインストールされているマシンにログインして以下のコマンドを実行すると、この情報を確認することができます。openssl x509 -in /etc/pki/ovirt-engine/ca.pem -noout -subject
# openssl x509 -in /etc/pki/ovirt-engine/ca.pem -noout -subjectCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは以下のような出力を表示します。subject= /C=US/O=Example Inc./CN=engine.example.com.81108
subject= /C=US/O=Example Inc./CN=engine.example.com.81108Copy to Clipboard Copied! Toggle word wrap Toggle overflow 対象となる箇所は/C=US/O=Example Inc.です。これを使用して、プロキシーの証明書の完全な識別名を作成します。/C=US/O=Example Inc./CN=proxy.example.com
/C=US/O=Example Inc./CN=proxy.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - プロキシーマシンにログインして、証明書署名要求 (CSR) を生成します。
openssl req -newkey rsa:2048 -subj '/C=US/O=Example Inc./CN=proxy.example.com' -nodes -keyout proxy.key -out proxy.req
# openssl req -newkey rsa:2048 -subj '/C=US/O=Example Inc./CN=proxy.example.com' -nodes -keyout proxy.key -out proxy.reqCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要
証明書の識別名は引用符で囲む必要があります。-nodesオプションは、秘密鍵が暗号化されないようにします。これは、プロキシーサーバーの起動にパスワードを入力する必要がないことを意味します。このコマンドはproxy.keyとproxy.reqの 2 つのファイルを生成します。proxy.keyは秘密鍵です。このファイルは安全な場所に保管するようにしてください。proxy.reqは証明書署名要求です。proxy.reqには、特別な保護は必要ありません。 - 署名済みの証明書を生成するには、プロキシーのマシンからManager のマシンに証明書署名要求ファイルをコピーします。
scp proxy.req engine.example.com:/etc/pki/ovirt-engine/requests/.
# scp proxy.req engine.example.com:/etc/pki/ovirt-engine/requests/.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Manager のマシンにログインして、証明書に署名します。
/usr/share/ovirt-engine/bin/pki-enroll-request.sh --name=proxy --days=3650 --subject='/C=US/O=Example Inc./CN=proxy.example.com'
# /usr/share/ovirt-engine/bin/pki-enroll-request.sh --name=proxy --days=3650 --subject='/C=US/O=Example Inc./CN=proxy.example.com'Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドにより、証明書が署名され、10 年間 (3650 日) 有効になります。証明書の失効期限を短く設定することもできます。 - 生成した証明書ファイルは
/etc/pki/ovirt-engine/certsディレクトリーにあり、proxy.cerという名前がついているはずです。プロキシーマシンで、Manager のマシンから、現在のディレクトリーにこのファイルをコピーします。scp engine.example.com:/etc/pki/ovirt-engine/certs/proxy.cer .
# scp engine.example.com:/etc/pki/ovirt-engine/certs/proxy.cer .Copy to Clipboard Copied! Toggle word wrap Toggle overflow proxy.keyとproxy.cerの両ファイルがプロキシーマシン上に存在していることを確認します。ls -l proxy.key proxy.cer
# ls -l proxy.key proxy.cerCopy to Clipboard Copied! Toggle word wrap Toggle overflow - プロキシーマシンに Squid プロキシーサーバーパッケージをインストールします。
yum install squid
# yum install squidCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 秘密鍵と署名済みの証明書をプロキシーがアクセスできる場所 (例:
/etc/squidディレクトリー) に移動します。cp proxy.key proxy.cer /etc/squid/.
# cp proxy.key proxy.cer /etc/squid/.Copy to Clipboard Copied! Toggle word wrap Toggle overflow squidユーザーがこれらのファイルを読み込むことができるようにパーミッションを設定します。chgrp squid /etc/squid/proxy.* chmod 640 /etc/squid/proxy.*
# chgrp squid /etc/squid/proxy.* # chmod 640 /etc/squid/proxy.*Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Squid プロキシーは engine が使用する証明書を検証する必要があります。Manager の証明書をプロキシーマシンにコピーします。以下の例では、ファイルパスに
/etc/squidを使用します。scp engine.example.com:/etc/pki/ovirt-engine/ca.pem /etc/squid/.
# scp engine.example.com:/etc/pki/ovirt-engine/ca.pem /etc/squid/.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記
デフォルトの CA 証明書は、Manager のマシンの/etc/pki/ovirt-engine/ca.pemにあります。 squidユーザーがこれらの証明書ファイルを読み込むことができるようにパーミッションを設定します。chgrp squid /etc/squid/ca.pem chmod 640 /etc/squid/ca.pem
# chgrp squid /etc/squid/ca.pem # chmod 640 /etc/squid/ca.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow - SELinux が Enforcing モードの場合は、semanage ツールを使用してポート 443 のコンテキストを変更します。これにより、Squid がポート 443 を使用できるようになります。
yum install policycoreutils-python semanage port -m -p tcp -t http_cache_port_t 443
# yum install policycoreutils-python # semanage port -m -p tcp -t http_cache_port_t 443Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 既存の squid 設定ファイルを以下のように置き換えます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Squid プロキシーサーバーを再起動します。
service squid restart
# service squid restartCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 以下のような完全な URL でユーザーポータルに接続します。
https://proxy.example.com/UserPortal/org.ovirt.engine.ui.userportal.UserPortal/UserPortal.html
https://proxy.example.com/UserPortal/org.ovirt.engine.ui.userportal.UserPortal/UserPortal.htmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記
https://proxy.example.com/UserPortalなどの短縮 URL は機能しません。このような短縮 URL は、302 レスポンスコードとロケーションヘッダーを使用して、アプリケーションサーバーによって長い URL にリダイレクトされます。Red Hat Enterprise Linux および Fedora の Squid は、これらのヘッダーの書き換えはサポートしていません。
注記
デフォルトでは、Squid プロキシーはアイドル状態が 15 分経過すると接続を終了します。アイドル状態の接続を切断するまでの時間を延長するには、
squid.conf の read_timeout オプションを調整します (例: read_timeout 10 hours)。