1. Home
  2. CMS
  3. Prestashop
  4. Forzar SSL en mi web
  1. Home
  2. CMS
  3. Joomla
  4. Forzar SSL en mi web
  1. Home
  2. SSL
  3. Forzar SSL en mi web
  1. Home
  2. CMS
  3. WordPress
  4. Forzar SSL en mi web
  1. Home
  2. CMS
  3. Forzar SSL en mi web

Forzar SSL en mi web

Para hacer esto normalmente se recurre a una redirección a https desde el archivo .htaccess de la web, aunque algunos CMS incorporan la posibilidad de forzar la redirección sin aplicar el cambio en el archivo .htaccess.

Forzar SSL en WordPress (sin Woocommerce ni pagos por Redsys)

En primer lugar habrá que definir que la url de la web es con https. Para ello hay que ir, en la administración de la web, a Ajustes->Generales.

En los campos Dirección de WordPress (URL) y Dirección del sitio (URL) habrá que poner la url de la web con https. De esta forma se carga la web con https, pero este cambio no implica que el uso de https esté forzado.

Para forzar el uso de SSL en la administración de WordPress habrá que editar el archivo wp-config.php, situado en la raíz de la web, para añadir en él el siguiente código (se puede colocar al final del archivo):

define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

Si queremos forzar el uso del SSL en toda la web, hay que añadir el siguiente código, que redirige las urls con http (no seguras) a las misma url con https (seguras), al inicio del archivo .htaccess situado en la raíz de la web:

RewriteEngine On
RewriteCond %{ENV:HTTPS} !on [NC]
RewriteCond %{HTTP_HOST} ^tudominio\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.tudominio\.com$
RewriteRule ^(.*)$ https://www.tudominio.com/$1 [R,L] 

Cambia tudominio por el dominio de tu web y el com por la extensión de tu dominio si tu dominio no tiene la extensión .com

Forzar SSL en WordPress+WooCommerce

Dentro de la administración de WordPress se puede poner en “Ajustes->Generales” la urls con https en los campos “Dirección de WordPress (URL)” y “Dirección del sitio (URL)”.

Esto hará que las urls se generen con https, pero no forzarán su uso.

Dispones de 2 opciones: forzar el SSL en las partes privadas de la tienda o en toda la web.

1.- Para forzar SSL sólo en las partes privadas de la tienda tendrás que ir  en la administración de tu web a “WooCommerce->Ajustes“, pulsar en la pestaña “Finalizar compra” y activar el parámetro “Forzar el pago seguro“.

2.- Para forzar SSL en toda la web habrá que hacer la redirección desde .htaccess.  Para ello hay que añadir lo siguiente al inicio del archivo .htaccess:

RewriteEngine On
RewriteCond %{ENV:HTTPS} !on [NC]
RewriteCond %{QUERY_STRING} !wc-api [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]

Forzar SSL en Joomla (sin Virtuemart ni pagos por Redsys)

En Joomla disponemos de 2 opciones de forzar SSL: sólo en la administración o en todo el sitio.

Para hacer esto vamos en la administración de Joomla a Sistema->Configuración global y pulsamos en la pestaña Servidor. En el parámetro Forzar SSL podremos elegir entre las opciones “Ninguna“(no se fuerza el uso del protocolo SSL),  “Solo en la administración“(sólo se fuerza en la administración de Joomla) y “Todo el sitio“(se fuerza el uso de https tanto en el frontal como en la administración de la web).
Elige la opción que prefieras, pero lo recomendable es la última opción, en todo el sitio.

Una forma alternativa de forzar la redirección a https sería añadiendo el siguiente código al inicio del archivo .htaccess de la raíz de la web:

RewriteEngine On
RewriteCond %{ENV:HTTPS} !on [NC]
RewriteCond %{HTTP_HOST} ^tudominio\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.tudominio\.com$
RewriteRule ^(.*)$ https://tudominio.com/$1 [R=301,L,NE]

Forzar SSL en Joomla+Virtuemart

Dispones de 2 opciones: forzar el SSL en las partes privadas de la tienda o en toda la web.

Si se quiere forzar el SSL en las partes privadas de la tienda deberemos ir en la administración de Joomla a “Componentes->Virtuemart->Configuración“.

Aquí habrá que activar el parámetro “Activar SSL para áreas sensibles“.

Esto no afectará a las notificaciones con Redsys.

Si se quiere forzar el uso de SSL en toda la web, entrando en “Sistema->Configuración global“, veremos en la pestaña “Servidor” el parámetro “Forzar SSL“.

No es conveniente activar aquí la opción “Todo el sitio“, ya que esto forzará la redirección con un header location y puede dar problemas si usas Redsys para los pagos en tu web.

En su lugar es mejor hacer la redirección con .htaccess. Para ello hay que añadir lo siguiente al inicio del archivo .htaccess:

RewriteEngine On
RewriteCond %{ENV:HTTPS} !on [NC]
RewriteCond %{QUERY_STRING} !task=pluginnotification [NC]
RewriteCond %{QUERY_STRING} !task=pluginresponsereceived [NC]
RewriteCond %{HTTP_HOST} ^tudominio\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.tudominio\.com$
RewriteRule ^(.*)$ https://tudominio.com/$1 [R=301,L,NE]

Forzar SSL en PrestaShop

Si queremos forzar el uso de SSL en PrestaShop vamos a Preferencias->Configuración. Primero habrá que pulsar en el enlace Please click here to check if your shop supports HTTPS que se muestra en Habilitar SSL. Una vez realizada la comprobación veremos que podemos activar el parámetro Habilitar SSL. Activamos tanto este parámetro como el parámetro Enable SSL on all pages, que forzará el uso de SSL.

Si utilizas Redsys para los pagos en tu web, será necesario tener una excepción para el redireccionamiento. Para conseguir esto subiremos el archivo FrontController.php que se puede descargar comprimido en un zip desde el enlace http://www.webempresa.com/descargas/FrontController.zip en la ruta override/classes/controler.

 

Updated on septiembre 12, 2017

Was this article helpful?

Related Articles