nativeInstallerwamp

Password-protect access to an application with Apache

NOTE: The Approach A sections referred to below do not apply to Bitnami native installers. Users of Bitnami native installers should refer only to the Approach B sections.

To configure Apache to request a username and password when accessing your application, follow these steps:

Approach A: Bitnami installations using system packages

  • At the console, type the following commands. Remember to replace APPNAME, USERNAME and PASSWORD with the application name (for example, wordpress), and desired username and password, respectively.

      $ sudo installdir/apache2/bin/htpasswd -cb installdir/apache2/APPNAME_users USERNAME PASSWORD
    
  • Edit the installdir/apache2/conf/vhosts/APPNAME-vhost.conf file to add the following lines:

      <VirtualHost 127.0.0.1:443 _default_:443>
        ...
        <Directory "installdir/APPNAME">
          ...
          AuthType Basic
          AuthName MyAuthName
          AuthUserFile "installdir/apache2/APPNAME_users"
          Require valid-user
    

    In addition, find the line containing Require all granted in the same file and comment it by placing a hash (#) symbol before it, as shown below:

      # Require all granted
    

    If your application has a proxy, add the following lines at the end of the file:

        ...
        <Location />
          AuthType Basic
          AuthName "Authentication required"
          Require valid-user
          AuthUserFile "installdir/apache2/APPNAME_users"
        </Location>
      </VirtualHost>
    
  • Edit the installdir/apache2/conf/vhosts/APPNAME-https-vhost.conf file to add the following lines:

      <VirtualHost 127.0.0.1:443 _default_:443>
        ...
        <Directory "installdir/APPNAME">
          ...
          AuthType Basic
          AuthName MyAuthName
          AuthUserFile "installdir/apache2/APPNAME_users"
          Require valid-user
    

    In addition, find the line containing Require all granted in the same file and comment it by placing a hash (#) symbol before it, as shown below:

      # Require all granted
    

    If your application has a proxy, add the following lines at the end of the file:

        ...
        <Location />
          AuthType Basic
          AuthName "Authentication required"
          Require valid-user
          AuthUserFile "installdir/apache2/APPNAME_users"
        </Location>
      </VirtualHost>
    
  • Restart the Apache server:

      $ sudo installdir/ctlscript.sh restart apache
    

Approach B: Self-contained Bitnami installations

  • At the console, type the following commands. Remember to replace APPNAME, USERNAME and PASSWORD with the application name (for example, wordpress), and desired username and password, respectively.

      $ sudo installdir/apache2/bin/htpasswd -cb installdir/apache2/APPNAME_users USERNAME PASSWORD
    
  • Edit the installdir/apps/APPNAME/conf/httpd-app.conf file to add the following lines. In addition, find the line containing Require all granted line in the same file and comment it by placing a hash (#) symbol before it, as shown below:

      <Directory "installdir/apps/APPNAME/htdocs">
        ...
        AuthType Basic
        AuthName MyAuthName
        AuthUserFile "installdir/apache2/APPNAME_users"
        Require valid-user
        ...
    
        <IfVersion >= 2.3>
          # Require all granted
        </IfVersion>
        ...
      </Directory>
    
  • If your application has a proxy, add the following lines at the end of installdir/apps/APPNAME/conf/httpd-app.conf file:

      <Location />
        AuthType Basic
        AuthName "Authentication required"
        Require valid-user
        AuthUserFile "installdir/apache2/APPNAME_users"
      </Location>
    
  • Restart the Apache server:

      $ sudo installdir/ctlscript.sh restart apache
    

When accessing the application, you will see the following authentication popup window. Enter the username and password that you have defined in the first step:

Authentication required

To change the password later, run the htpasswd utility without the -c switch and replace the USERNAME placeholder with the username of the account you wish to modify:

$ sudo installdir/apache2/bin/htpasswd installdir/apache2/APPNAME_users USERNAME

To add another user to the same file, run the htpasswd utility without the -c switch and replace the USERNAME and PASSWORD placeholders with the new username and password you wish to add.

$ sudo installdir/apache2/bin/htpasswd -b installdir/apache2/APPNAME_users USERNAME PASSWORD
Last modification June 16, 2021