¿Cómo proteger una página con contraseña en Apache, Nginx, WordPress, Hosting?
Es posible que tenga alguna página confidencial que desee proteger con la contraseña. Esto también se conoce como autenticación básica.
La buena noticia es que es posible y muy fácil.
¿Por qué proteger la página web con contraseña?
Bueno, podría haber muchas razones, entre ellas.
- Contener datos sensibles en la página
- La página no está lista y no desea que sea visible públicamente, sino compartirla con alguien.
WhateSea como sea, exploremos cómo puede protegerlo.
Requisito
Tomemos un ejemplo; Quiero proteger /client
en laboratorio.geekflare.com, lo que significa que si alguien accede https://lab.geekflare.com/client
debe solicitar una contraseña.
APACHE
Comencemos con Apache primero.
Lo primero que debemos crearate es un archivo de contraseña donde se almacenarán todas las credenciales. El nombre del archivo sería .htpasswd
y puedes colocarlo en cualquier lugar del servidor. voy a crearate está debajo /etc/httpd/conf
carpeta
- puedes crearate el archivo con el
touch
comando
touch /etc/httpd/conf/.htpasswd
- Agreguemos el usuario al que se le permitiría acceder a / client. Necesitamos usar
htpasswd
comando para esto.
htpasswd /etc/httpd/conf/.htpasswd geekflare
- la última sección geekflare, es el nombre de usuario. Cambia eso con lo que quieras y presiona Enter.
- Ingrese la contraseña y verá una confirmación de que se agregó el usuario.
[root@lab html]# htpasswd /etc/httpd/conf/.htpasswd geekflare
New password:
Re-type new password:
Adding password for user geekflare
[root@lab html]#
Si captura el archivo, notará que la contraseña se almacena en un formato cifrado. ¡Es bueno!
[root@lab html]# cat /etc/httpd/conf/.htpasswd
geekflare:$apr1$EHvl0Bc5$nh4u0w3.Cj3wzPT7XUXqW1
[root@lab html]#
A continuación, debemos indicarle a Apache que proteja el URI que queremos.
- Modifique el archivo httpd.conf o el archivo de configuración que está utilizando para la instancia de Apache. Estoy usando la instalación predeterminada, así que estoy usando /etc/httpd/conf/httpd.conf
- Agregue lo siguiente en cualquier lugar del archivo
<Directory "/var/www/html/client">
Options Indexes FollowSymLinks
AuthType Basic
AuthName "Protected Content for Client"
AuthUserFile /etc/httpd/conf/.htpasswd
Require valid-user
</Directory>
Si ya tienes un /var/www/html/client
Directiva de directorio, luego, en lugar de agregar una nueva sección, debe agregar lo siguiente en la directiva existente.
AuthType Basic
AuthName "Protected Content"
AuthUserFile /etc/httpd/conf/.htpasswd
Require valid-user
- Reiniciar Apache
service httpd restart
- Intente acceder a la página / client, y debería pedirle una contraseña.
- Ingrese la credencial que estableció anteriormente para ver el contenido.
Lujoso .htaccess ¿método?
Claro, puede implementar la autenticación básica a través de .htaccess
archivo también. Todavía necesitas generarate credenciales usando htpasswd
como se explicó anteriormente. Una vez hecho esto, puede agregar lo siguiente en la carpeta respectiva .htaccess
archivo.
AuthType Basic
AuthName "Protected Content"
AuthUserFile /etc/httpd/conf/.htpasswd
Require valid-user
Lo bueno es que no es necesario reiniciar Apache.
Nginx
Implementemos la autenticación básica en Nginx siguiendo.
Tomaremos la ayuda de Apache Utils para generarate las credenciales. Si el servidor no tiene instalado Apache HTTP, entonces necesita instalar las utilidades por separado.ately como se muestra a continuación. Si no está seguro, puede ejecutar htpasswd
para ver si funciona. Si no es así, entonces sabrá que necesita instalarlo.
CentOS / RHEL 8
dnf install httpd-tools
CentOS / RHEL 7
yum install httpd-tools
Ubuntu
apt-get install apache2-utils
- vamos a crearate las credenciales de manera similar a como lo hicimos en Apache.
htpasswd -c /etc/nginx/.htpasswd chandan
- No te olvides de reemplazar chandan con el nombre de usuario real que desee
A continuación, necesitamos configurar Nginx, por lo que restringe el URI particular con la contraseña.
- Asumamos que necesitamos proteger
/admin
URI - Agregue lo siguiente en
nginx.conf
u otro archivo de configuración activo de Nginx
location /admin {
auth_basic "Admin Area";
auth_basic_user_file /etc/nginx/.htpasswd;
}
- Reiniciar Nginx
¿Qué sucede si tiene que restringir el servicio de todo el sitio web a través de Nginx?
¡Fácil!
Agregue lo siguiente en nginx.conf o el archivo de configuración activo en location / {
Directivas
auth_basic "Admin Area";
auth_basic_user_file /etc/nginx/.htpasswd;
Iart
El alojamiento platLa forma ha evolucionado. Hay muchos platformularios que ofrecen herramientas útiles, y SiteGround es uno de ellos.
Si está utilizando SiteGround para alojar su sitio web, puede proteger fácilmente la URL desde su consola de administración. Supongamos que está usando WordPress y necesito proteger /wp-admin
.
- Inicie sesión en SiteGround y vaya al sitio donde necesita habilitar la autenticación básica.
- Haga clic en Seguridad >> URL protegidas >> Usuarios
- Ingrese el nombre y la contraseña para crearate la credencial
A continuación, protegeremos wp-admin con la credencial que acabamos de crear.ated.
- Ir a la pestaña URL
- Ingrese wp-admin en la ruta y haga clic en proteger
- Haga clic en Administrar acceso y asigne el usuario que acaba de crear.ated
Intente acceder a la página y SiteGround le pedirá que ingrese las credenciales.
Fácil, ¿no?
WordPress
Usando WordPress y le gustaría proteger con contraseña una publicación, página, c en particularatesangriento, por función o el sitio completo?
¡Por supuesto!
Conoce a PPWP (Complemento de WordPress protegido con contraseña)
Instale el complemento y configure la forma en que desea proteger los recursos de WordPress. Esto funciona con constructores de páginas como Elementor, Divi, Beaver.
Alternativamente, si necesita una publicación o página simple protegida con contraseña, puede aprovechar la función WP incorporada. No necesitas ningún complemento para esto.
- Vaya a la publicación o página en la que desea habilitar una contraseña.
- En la sección de publicación, haga clic en Editar junto a la visibilidad: Público
- Seleccione Protegido con contraseña e ingrese la contraseña.
- Haga clic en Aceptar, ¡y listo!
¿Necesita más formas de proteger WordPress? Mira esto guía.
cPanel
Si estás en alojamiento compartido, entonces lo más probable es que tengas cPanel. La buena noticia es cPanel ofrece una utilidad llamada Directory Privacy; desde allí, puede establecer una contraseña para el directorio.
- Inicie sesión para cPanel
- Buscar privacidad en el directorio
- Seleccione la carpeta que desea proteger. Como a continuación, he seleccionado una carpeta llamada chandan, que está bajo public_html
- Create el usuario que debe ser permitido y guardar
- Una vez hecho esto, notará que la carpeta tiene un candado
Y eso es. El directorio está protegido con contraseña ahora. Como puede ver arriba, he probado en Alojamiento A2y funciona muy bien
Para Concluir
Espero que lo anterior le ayude a proteger cierta carpeta URI con la contraseña mediante autenticación básica. Si está buscando una seguridad completa para su sitio web, debería considerar implementar WAF.