El servidor web Apache es gratuito, de código abierto y uno de los servidores web más utilizados en el mundo. Le permite servir el contenido en la web.
Cualquier usuario puede acceder a su aplicación a través de Internet cuando está alojada en un servidor web Apache. En algunos casos, es posible que deba proteger su aplicación para que solo los usuarios autenticados puedan acceder a la aplicación. Puede proteger su aplicación a nivel de servidor utilizando Apache htpasswd. Esta utilidad le permite limitar el acceso a un sitio web específico a la persona limitada que solo tiene los datos de inicio de sesión.
En este tutorial, le mostraremos cómo configurar la autenticación de contraseña con Apache en Ubuntu 18.04.
Requisitos
- Un Ubuntu 18.04 VPS nuevo en Atlantic.net Cloud Platform.
- Una contraseña raíz configurada en su servidor.
Paso 1:crear el servidor en la nube de Atlantic.Net
Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Ubuntu 18.04 como sistema operativo con al menos 1 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.
Una vez que haya iniciado sesión en su servidor Ubuntu 18.04, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.
apt-get update -y
Paso 2:instalar el servidor web Apache
apt-get install apache2 apache2-utils -y
Una vez instalado, inicie el servicio Apache y habilítelo para que se inicie después de reiniciar el sistema con el siguiente comando:
systemctl start apache2 systemctl enable apache2
Ahora, abra su navegador web y navegue hasta la URL http://your-server-ip. Debería ver su página web predeterminada de Apache en la siguiente pantalla:
Paso 3:crear un archivo de contraseñas de Apache
Primero, deberá crear un archivo de contraseña que Apache pueda usar para autenticar a los usuarios. Puede crear un archivo .htpasswd oculto dentro del directorio /etc/apache2 para un usuario llamado usuario1 usando la utilidad htpasswd:
htpasswd -c /etc/apache2/.htpasswd user1
Proporcione su contraseña deseada, como se muestra a continuación:
New password: Re-type new password: Adding password for user user1
El comando anterior creará un archivo .htpasswd con las credenciales de usuario. Deberá usar estas credenciales para acceder a su sitio web.
Paso 4:cree un sitio web de muestra
En esta sección, crearemos una estructura de directorios de muestra y un archivo index.html con fines de prueba.
Primero, crea un directorio para tu sitio web con el siguiente comando:
mkdir /var/www/html/example.com
A continuación, cree un archivo index.html dentro de su directorio web con el siguiente comando:
nano /var/www/html/example.com/index.html
Agregue los siguientes contenidos:
<html> <title>Password Protected Apache Website.</title> <h1>This website is password protected.</h1> </html>
Guarde y cierre el archivo cuando haya terminado. Luego, cambie la propiedad de su directorio web a www-data:
chown -R www-data:www-data /var/www/html/example.com
Paso 5:configurar la autenticación básica de Apache
A continuación, deberá crear un archivo de configuración de host virtual de Apache para su sitio web y definir la autenticación básica.
nano /etc/apache2/sites-available/example.conf
Agregue las siguientes líneas:
<VirtualHost *:80> ServerAdmin [email protected] ServerName example.com DocumentRoot /var/www/html/example.com DirectoryIndex index.html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory "/var/www/html/example.com"> AuthType Basic AuthName "Restricted Content" AuthUserFile /etc/apache2/.htpasswd Require valid-user </Directory> </VirtualHost>
Guarde y cierre el archivo cuando haya terminado.
A continuación se especifica una breve explicación de cada directiva:
- Administrador del servidor :dirección de correo electrónico del administrador del servidor.
- Nombre del servidor :Nombre de dominio que utiliza el servidor para identificarse.
- Raíz del documento :especifique la ruta de su aplicación.
- Índice de directorio :especifique una página predeterminada para mostrar cuando se acceda a un directorio.
- Tipo de autenticación :Tipo de autenticación.
- Nombre de autenticación :especifique el mensaje que aparecerá en la página de contraseña.
- AuthUserFile :especifique la ubicación del archivo de credenciales de usuario.
- Requerir :especifique los usuarios que pueden acceder a esta región del servidor.
A continuación, compruebe Apache en busca de errores de sintaxis con el siguiente comando:
apachectl -t
Deberías obtener el siguiente resultado:
Syntax OK
A continuación, habilite el archivo de host virtual de Apache para su sitio web con el siguiente comando:
a2ensite example.conf
A continuación, reinicie el servicio Apache para implementar los cambios:
systemctl restart apache2
Paso 6:verificar la autenticación de contraseña de Apache
En este punto, su sitio web está protegido con la autenticación básica de Apache.
Para verificarlo, abra su navegador web y escriba la URL http://example.com. Se le pedirá que proporcione un nombre de usuario y una contraseña para acceder a su sitio web, como se muestra a continuación:
Proporcione su nombre de usuario y contraseña y haga clic en Iniciar sesión botón. Debería ver la página predeterminada de su sitio web en la siguiente pantalla:
Conclusión
En la guía anterior, aprendimos cómo crear un sitio web protegido con contraseña con Apache en Ubuntu 18.04. Ahora puede proteger fácilmente con contraseña su sitio web con Apache:¡pruébelo hoy con un plan de alojamiento VPS de Atlantic.Net! Para obtener más información, puede visitar la documentación oficial de Apache en Apache Auth.