Cómo redireccionar HTTP a HTTPS en Apache


HTTP ( Hyper Text Transfer Protocol ) es un protocolo popular y fundamental para la comunicación de datos en la World Wide Web ( WWW ); Por lo general, entre un navegador web y el servidor que almacena los archivos web. Mientras que HTTPS es la versión segura de HTTP, donde la " S " al final significa " Seguro" ("strong").

Al utilizar HTTPS , todos los datos entre su navegador y el servidor web están encriptados, por lo tanto, son seguros. Este tutorial le mostrará cómo redireccionar HTTP a HTTPS en el servidor HTTP Apache en Linux.

Antes de que pueda configurar un redireccionamiento de Apache HTTP a HTTPS para su dominio, asegúrese de tener certificado SSL instalado y mod_rewrite está habilitado en Apache. Para obtener más información sobre cómo configurar SSL en Apache, consulte las siguientes guías.

  1. How to Create Self-Signed SSL Certificates and Keys for Apache
  2. How to Install Let’s Encrypt SSL Certificate on CentOS/RHEL 7
  3. How to Install Let’s Encrypt SSL Certificate on Debian/Ubuntu

Redirigir HTTP a HTTPS en Apache usando el archivo .htaccess

Para este método, asegúrese de que mod_rewrite esté habilitado; de lo contrario, habilítelo así en los sistemas Ubuntu/Debian.

$ sudo a2enmod rewrite	[Ubuntu/Debian]

Para usuarios de CentOS/RHEL, asegúrese de tener la siguiente línea en httpd.conf ( mod_rewrite , habilitada de forma predeterminada).

LoadModule rewrite_module modules/mod_rewrite.so

Ahora solo necesita editar o crear el archivo .htaccess en el directorio raíz de su dominio y agregar estas líneas para redirigir http a https.

RewriteEngine On 
RewriteCond %{HTTPS}  !=on 
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] 

Ahora, cuando un visitante escriba http://www.yourdomain.com , el servidor redireccionará automáticamente HTTP a HTTPS https://www.yourdomain.com .

Redirigir HTTP a HTTPS en el host virtual de Apache

Además, para forzar a todo el tráfico web a utilizar HTTPS , también puede configurar su archivo de host virtual. Normalmente, hay dos secciones importantes de una configuración de host virtual si un certificado SSL está habilitado; el primero contiene configuraciones para el puerto no seguro 80 .

El segundo es para el puerto seguro 443 . Para redirigir HTTP a HTTPS para todas las páginas de su sitio web, primero abra el archivo de host virtual apropiado. Luego modifíquelo agregando la configuración a continuación.

NameVirtualHost *:80
<VirtualHost *:80>
   ServerName www.yourdomain.com
   Redirect / https://www.yourdomain.com
</VirtualHost>

<VirtualHost _default_:443>
   ServerName www.yourdomain.com
   DocumentRoot /usr/local/apache2/htdocs
   SSLEngine On
# etc...
</VirtualHost>

Guarde y cierre el archivo, luego reinicie el servidor HTTP de esta manera.

$ sudo systemctl restart apache2     [Ubuntu/Debian]
$ sudo systemctl restart httpd	     [RHEL/CentOS]

Mientras que & lt; VirtualHost & gt; es la solución más recomendada porque es más simple y segura.

Es posible que desee leer estos útiles artículos de fortalecimiento de la seguridad del servidor HTTP Apache:

  1. 25 Useful Apache ‘.htaccess’ Tricks to Secure and Customize Websites
  2. How to Password Protect Web Directories in Apache Using .htaccess File
  3. How to Hide Apache Version Number and Other Sensitive Info
  4. Protect Apache Against Brute Force or DDoS Attacks Using Mod_Security and Mod_evasive

¡Eso es todo! Para compartir cualquier idea relacionada con esta guía, utilice el formulario de comentarios a continuación. Y recuerda estar siempre conectado a Tecmint.com.