Information Classification: External Restricted.
See https://www.chili-publish.com/security
Reverse Proxy on Apache
As your Apache is redirecting the requests, it should be able to resolve the domain (DNS lookup) for the CHILI server internally.
You can set up a Reverse Proxy on Apache by modifying the httpd-vhost.conf
file that is used by your application.
The below configuration shows a possible VirtualHost configuration for the application http://www.yourapplication.com
.
It contains a configured Reverse Proxy Setting for a CHILI Server that is accessible via the domain http://www.yourchilipublisher.com
.
We assume that the CHILI Publisher web application is accessible via http://www.yourchilipublisher.com/CHILI/
.
This setup will allow you to load the CHILI publisher web application on http://www.yourapplication.com/CHILI/
while the traffic is actually being redirected to http://www.yourchilipublisher.com/CHILI/
.
<VirtualHost *:80> ServerAdmin webmaster@yourapplication.com ServerName www.yourapplication.com DocumentRoot /var/www/yourapplication <Directory /var/www/yourapplication> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ProxyRequests Off <Proxy *> Order allow,deny Allow from all </Proxy> ProxyPass /CHILI/ http://www.yourchilipublisher.com/CHILI/ ProxyPassReverse /CHILI/ http://www.yourchilipublisher.com/CHILI/ ProxyPreserveHost On </VirtualHost>
ProxyRequests Off
allows or prevents Apache httpd from functioning as a forward proxy server.
In a typical reverse proxy or gateway configuration, this option should be set to Off
.
The Proxy Directive (<Proxy/>
) enables forwarding of (standard) proxy requests.
ProxyPass
and ProxyPassReverse
redirects the requests, directed to a certain subfolder of your application, to get the information from the CHILI Server.
The ProxyPass
directive allows remote servers to be mapped into the space of the local server.
The local server does not act as a proxy in the conventional sense but appears to be a mirror of the remote server.
The ProxyPassReverse
directive lets Apache httpd adjust the URL in the Location
, Content-Location
and URI
headers on HTTP redirect responses.
This is essential when Apache httpd is used as a reverse proxy (or gateway) to avoid bypassing the reverse proxy because of HTTP redirects on the backend servers which stay behind the reverse proxy.
When ProxyPreserveHost
is enabled, it will pass the Host
line from the incoming request to the proxied host, instead of the hostname specified in the
ProxyPass
line.
Required Apache Modules
Make sure that you have the mod_proxy
and mod_proxy_http
Apache modules are installed for this setup.
HTTPS
When using HTTPS, the httpd-vhost.conf
configuration for your VirtualHost will look slightly different than it would for HTTP
<VirtualHost *:443> ServerAdmin webmaster@yourapplication.com ServerName www.yourapplication.com DocumentRoot /var/www/yourapplication <Directory /var/www/yourapplication> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> SSLEngine on SSLProxyEngine on SSLCertificateFile /path/to/yourapplication.crt SSLCertificateKeyFile /path/to/yourapplication.key ProxyRequests Off <Proxy *> Order allow,deny Allow from all </Proxy> ProxyPass /CHILI/ https://www.yourchilipublisher.com/CHILI/ ProxyPassReverse /CHILI/ https://www.yourchilipublisher.com/CHILI/ # ProxyPreserveHost cannot work when using SSL - the hostname will not match the certificate ProxyPreserveHost Off </VirtualHost>
Required Apache Modules
Apart from the mod_proxy
and mod_proxy_http
Apache modules (see above), you also need the deflate
, headers
, proxy_connect
, proxy_http
and the ssl
Apache modules to be installed
CHILI publish Online (SaaS)
When working with SaaS the above vhost files will cause issues because in the above examples the server is setup with an alias of CHILI, but not CHILI publish Online, there is no alias. What you need to do instead is proxy from your subdirectory to the top directory of your CHILI publish Online URL.
Here is an example where we proxy to path editor
<VirtualHost *:443> ServerName example.com ServerAlias www.example.com DocumentRoot "C:\Php" <Directory "C:\Php"> Options +Indexes +Includes +FollowSymLinks +MultiViews AllowOverride All Require all granted </Directory> SSLCertificateFile "C:\wamp64\bin\apache\apache2.4.39\bin\privateCertificate.crt" SSLCertificateKeyFile "C:\wamp64\bin\apache\apache2.4.39\bin\privateFree.key" SSLEngine on SSLProxyEngine on ProxyPass /editor/ https://myenvironment.chili-publish.online/ ProxyPassReverse /editor/ https://myenvironment.chili-publish.online/ </VirtualHost>
So, now if I want to get to CHILI BackOffice, I would now go to: https://www.example.com/editor/myenvironment/interface.aspx
All information on this page must be treated as External Restricted, or more strict. https://www.chili-publish.com/security