awsgrafana

Force HTTPS redirection with Apache

NOTE: We are in the process of modifying the file structure and configuration for many Bitnami stacks. On account of these changes, the file paths stated in this guide may change depending on whether your Bitnami stack uses native Linux system packages (Approach A), or if it is a self-contained installation (Approach B). To identify your Bitnami installation type and what approach to follow, run the command below:

 $ test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A: Using system packages." || echo "Approach B: Self-contained installation."

The output of the command indicates which approach (A or B) is used by the installation, and will allow you to identify the paths, configuration and commands to use in this guide. Refer to the FAQ for more information on these changes.

TIP: To quickly get started with HTTPS and SSL, follow these instructions to auto-configure a Let’s Encrypt SSL certificate.

Approach A: Bitnami installations using system packages

Follow these steps:

  • Add the following lines in the default Apache virtual host configuration file at /opt/bitnami/apache2/conf/bitnami/bitnami.conf, inside the default VirtualHost directive, so that it looks like this:

      <VirtualHost _default_:80>
        DocumentRoot "/opt/bitnami/apache2/htdocs"
        RewriteEngine On
        RewriteCond %{HTTPS} !=on
        RewriteCond %{HTTP_HOST} !^(localhost|127.0.0.1)
        RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
        ...
      </VirtualHost>
    

    To redirect all HTTP requests to a particular domain, specify the domain name as a static value in the rewrite rule instead of using the SERVER_NAME variable. Here’s an example of redirecting all HTTP requests to https://example.com:

      <VirtualHost _default_:80>
        DocumentRoot "/opt/bitnami/apache2/htdocs"
        RewriteEngine On
        RewriteCond %{HTTPS} !=on
        RewriteCond %{HTTP_HOST} !^(localhost|127.0.0.1)
        RewriteRule ^/(.*) https://example.com/$1 [R,L]
        ...
      </VirtualHost>
    
  • Add the same lines in the file at /opt/bitnami/apache2/conf/bitnami/bitnami-ssl.conf.

  • Add the same lines in any file ending with the prefix -vhost.conf in the /opt/bitnami/apache2/conf/vhosts/ directory.

Approach B: Self-contained Bitnami installations

Follow these steps:

  • Add the following lines in the default Apache virtual host configuration file at /opt/bitnami/apache2/conf/bitnami/bitnami.conf, inside the default VirtualHost directive, so that it looks like this:

      <VirtualHost _default_:80>
        DocumentRoot "/opt/bitnami/apache2/htdocs"
        RewriteEngine On
        RewriteCond %{HTTPS} !=on
        RewriteCond %{HTTP_HOST} !^(localhost|127.0.0.1)
        RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
        ...
      </VirtualHost>
    

    To redirect all HTTP requests to a particular domain, specify the domain name as a static value in the rewrite rule instead of using the SERVER_NAME variable. Here’s an example of redirecting all HTTP requests to https://example.com:

      <VirtualHost _default_:80>
        DocumentRoot "/opt/bitnami/apache2/htdocs"
        RewriteEngine On
        RewriteCond %{HTTPS} !=on
        RewriteCond %{HTTP_HOST} !^(localhost|127.0.0.1)
        RewriteRule ^/(.*) https://example.com/$1 [R,L]
        ...
      </VirtualHost>
    
  • After modifying the Apache configuration files, open port 443 in the server firewall. Refer to the FAQ for more information.

  • Restart Apache to apply the changes.

Last modification March 24, 2021