Redirección de Apache a HTTPS – Certificados SSL –

Aunque instalar un certificado SSL en un sitio web brinda la posibilidad de acceder a él con el protocolo seguro https://, este protocolo no se utiliza por defecto. Para asegurarse de que se acceda al sitio web utilizando el protocolo https:// de forma predeterminada, deberá configurar una redirección automática.

Si tiene un panel de control instalado sobre Apache, necesitará configurar redireccionamientos en el propio panel y no en el servidor para evitar bucles de redireccionamiento o ejecución incorrecta del módulo. Consulte nuestra guía sobre cómo configurar una redirección HTTPS en cPanel.

Se debe utilizar una redirección de Apache si no está utilizando cPanel ni ningún otro panel de control o GUI (interfaz gráfica de usuario).

Habilite Apache Redirect en el host virtual


Habilitar la redirección en el archivo Virtual Host es más seguro y sencillo que otras opciones presentadas en esta guía. La configuración también es similar para todos los sistemas. Implica agregar un fragmento de código específico al archivo del host virtual. Por lo general, hay dos archivos de host virtual en Apache si hay un certificado SSL instalado: uno es para el puerto no seguro 80 y el otro es para el puerto seguro 443.

  1. Localice la configuración de VirtualHost para el puerto 80 ejecutando el siguiente comando:
    • para servidores basados ​​en Debian (Ubuntu):

      apachectl -S

    • para servidores basados ​​en RHEL (CentOS):

      httpd -S

  2. La redirección a HTTPS se puede habilitar en el archivo Virtual Host para el puerto 80. Si desea forzar HTTPS para todas las páginas web, puede utilizar el siguiente conjunto de directivas:
    • para redirigir todo a https://tudominio.com:

      Nombre del servidor tudominio.com
      Redirección permanente / https://tudominio.com/

      Nombre del servidor tudominio.com
      Raíz del documento /usr/local/apache2/htdocs
      Motor SSL encendido

    • para redirigir todo a https://www.tudominio.com:

      Nombre del servidor www.tudominio.com
      Redireccionamiento permanente / https://www.tudominio.com/

      Nombre del servidor www.tudominio.com
      Raíz del documento /usr/local/apache2/htdocs
      Motor SSL encendido

    • para redirigir un directorio específico (/secure en nuestro caso):

      Nombre del servidor www.tudominio.com
      Raíz del documento /usr/local/apache2/htdocs
      Redireccionamiento permanente /seguro https://tudominio.com/secure

      Nombre del servidor www.tudominio.com
      Raíz del documento /usr/local/apache2/htdocs
      Motor SSL encendido

    Nota: Para aplicar los cambios realizados en el archivo de configuración, se debe reiniciar el servidor. Aquí hay comandos de consola para ambos tipos de sistema:

    Basado en Debian:
    reiniciar el servicio sudo apache2

    Basado en RHEL:

    reiniciar el servicio sudo httpd

See also  Cómo mover su sitio web a un nombre de dominio diferente - Blog

Utilice .htaccess para redirigir a HTTPS

Como alternativa, puedes modificar el archivo .htaccess. Este archivo generalmente se encuentra en el directorio raíz de documentos del sitio web y se utiliza para implementar reglas de redireccionamiento, así como algunas otras (como reglas que afectan la forma en que se vincula el contenido en el sitio web, permisos de archivos, etc.).

Tenga en cuenta que .htaccess no está disponible de forma predeterminada. Para habilitarlo, ubique y edite el archivo VirtualHost de la siguiente manera:

Después del bloque VirtualHost, agregue las siguientes líneas:

….

Opciones Índices SeguirSymLinks
Permitir anular todo
Requerir todo concedido

Después de eso, será posible agregar configuraciones a los archivos .htaccess.

El siguiente comando se puede utilizar para localizar el archivo .htaccess (si ya existe):

buscar / -escribir f -nombre “.htaccess”


Si el comando no devuelve nada, el archivo .htaccess debe crearse en la carpeta raíz del documento principal.

Se puede agregar la siguiente directiva al archivo .htaccess (que se coloca en la carpeta raíz de documentos del sitio web) para proteger todas las páginas del sitio web:

  • para redirigir todo a https://tudominio.com:

    Redireccionamiento permanente / https://tudominio.com

  • para redirigir todo a https://www.tudominio.com:

    Redireccionamiento permanente / https://www.tudominio.com

  • para redirigir solo a un directorio específico (/secure en nuestro caso):

    Redireccionamiento permanente /seguro https://tudominio.com/secure

Nota: se recomienda colocar este código en la parte superior del archivo .htaccess para que pueda sobrescribir otros códigos conflictivos.

Utilice Apache Rewritecond – regla mod_rewrite

Se recomienda el uso de la regla mod_rewrite para usuarios experimentados, ya que la configuración exacta puede ser diferente en diferentes sistemas. Esta regla se puede colocar en el archivo de configuración del host virtual o en el archivo .htaccess.

See also  EasyWP: Cómo generar un CSR + Vídeo - EasyWP -

Para configurar redirecciones utilizando reglas de reescritura, Apache requiere que esté habilitado el módulo de reescritura (mod_rewrite).

Para habilitar este módulo en un sistema operativo basado en Debian (Ubuntu), ejecute el siguiente comando:

reescritura de sudo a2enmod


Si el módulo está habilitado, el servidor enviará el siguiente mensaje:

La reescritura del módulo ya está habilitada

El módulo de reescritura suele estar habilitado de forma predeterminada en el sistema operativo basado en RHEL. La siguiente línea debería estar presente en el archivo de configuración principal:

LoadModule rewrite_module módulos/mod_rewrite.so


Asegúrate de que no esté comentado. Si esta línea no está en el archivo de configuración principal, instale el módulo de reescritura ejecutando este comando:

sudo yum instalar mod_rewrite

La sintaxis de las reglas mod_rewrite puede resultar complicada; por ejemplo, si desea redirigir a HTTPS en determinadas subcarpetas que constan de otras subcarpetas. Si no está seguro de si se puede utilizar mod_rewrite, es mejor habilitar la redirección a HTTPS en el archivo del host virtual.

Si desea crear una redirección para todas las páginas, la regla mod_rewrite debería verse así:

  • para redirigir todo a https://tudominio.com:

    Reescribir motor encendido
    ReescribirCond %{HTTPS} !=on
    Reescribir regla ^/?(.*) https://%{SERVER_NAME}/$1

    Nota: El código para www es el mismo que para el que no es www; sin embargo, para que funcione correctamente, el nombre del servidor debe establecerse como www en el código de configuración de VirtualHost.

  • para redirigir un directorio específico (/secure en nuestro caso):

    Reescribir motor encendido
    ReescribirCond %{HTTPS} !=on
    Reescribir regla ^/?secure/(.*) https://%{SERVER_NAME}/secure/$1

    Nota: Para configurar una redirección temporal, cambie el código de estado 301 (permanente) a 302 (temporal) en la bandera R.

See also  Registro de Dominio .cm | Comprar nombre de dominio .cm

Ahora su sitio web estará disponible a través de HTTPS de forma predeterminada. Para comprobar si las redirecciones funcionan correctamente, puede borrar el caché del navegador que utiliza habitualmente y abrir su sitio web, o intentar comprobarlo en otro navegador.

Loading Facebook Comments ...
Loading Disqus Comments ...