Dieser Inhalt ist in der von Ihnen ausgewählten Sprache nicht verfügbar.
21.2. Squid Proxy
21.2.1. Installing and Configuring a Squid Proxy Link kopierenLink in die Zwischenablage kopiert!
This section explains how to install and configure a Squid proxy to the User Portal. A Squid proxy server is used as a content accelerator. It caches frequently-viewed content, reducing bandwidth and improving response times.
Procedure 21.4. Configuring a Squid Proxy
- Obtain a keypair and certificate for the HTTPS port of the Squid proxy server. You can obtain this keypair the same way that you would obtain a keypair for another SSL/TLS service. The keypair is in the form of two PEM files which contain the private key and the signed certificate. For this procedure, we assume that they are named
proxy.keyandproxy.cer.Note
The keypair and certificate can also be generated using the certificate authority of the engine. If you already have the private key and certificate for the proxy and do not want to generate it with the engine certificate authority, skip to the next step. - Choose a host name for the proxy. Then, choose the other components of the distinguished name of the certificate for the proxy.
Note
It is good practice to use the same country and same organization name used by the engine itself. Find this information by logging in to the machine where the Manager is installed and running the following command: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 This command outputs something like this: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 The relevant part here is/C=US/O=Example Inc.. Use this to build the complete distinguished name for the certificate for the proxy:/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 - Log in to the proxy machine and generate a certificate signing request:
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 Important
You must include the quotes around the distinguished name for the certificate. The-nodesoption ensures that the private key is not encrypted; this means that you do not need to enter the password to start the proxy server.The command generates two files:proxy.keyandproxy.req.proxy.keyis the private key. Keep this file safe.proxy.reqis the certificate signing request.proxy.reqdoes not require any special protection. - To generate the signed certificate, copy the certificate signing request file from the proxy machine to the Manager machine:
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 - Log in to the Manager machine and sign the certificate:
/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 This signs the certificate and makes it valid for 10 years (3650 days). Set the certificate to expire earlier, if you prefer. - The generated certificate file is available in the directory
/etc/pki/ovirt-engine/certsand should be namedproxy.cer. On the proxy machine, copy this file from the Manager machine to your current directory: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 - Ensure both
proxy.keyandproxy.cerare present on the proxy machine:ls -l proxy.key proxy.cer
# ls -l proxy.key proxy.cerCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Install the Squid proxy server package on the proxy machine:
yum install squid
# yum install squidCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Move the private key and signed certificate to a place where the proxy can access them, for example to the
/etc/squiddirectory:cp proxy.key proxy.cer /etc/squid/.
# cp proxy.key proxy.cer /etc/squid/.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Set permissions so that the
squiduser can read these files: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 - The Squid proxy must verify the certificate used by the engine. Copy the Manager certificate to the proxy machine. This example uses the file path
/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 Note
The default CA certificate is located in/etc/pki/ovirt-engine/ca.pemon the Manager machine. - Set permissions so that the
squiduser can read the certificate file: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 - If SELinux is in enforcing mode, change the context of port 443 using the semanage tool to permit Squid to use port 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 - Replace the existing Squid configuration file with the following:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Restart the Squid proxy server:
systemctl restart squid.service
# systemctl restart squid.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Connect to the User Portal using the complete URL, for instance:
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 Note
Shorter URLs, for examplehttps://proxy.example.com/UserPortal, will not work. These shorter URLs are redirected to the long URL by the application server, using the 302 response code and the Location header. The version of Squid in Red Hat Enterprise Linux does not support rewriting these headers.
Note
read_timeout option in squid.conf (for instance read_timeout 10 hours).