Cómo migrar WordPress de Http a Https

Cómo migrar WordPress de Http a Https
4.5 (90%) 2 votes

¿Cómo cambiar tu sitio de WordPress de HTTP a HTTPS? Con el despliegue masivo de certificados gratuitos ofrecidos por Let’s Encrypt – un proyecto global apoyado por los principales actores de la Web, más del 60% de los sitios franceses han cambiado a HTTPS… ¡para bien o para mal!

Cambie su WordPress a HTTPS de forma segura utilizando un especialista reconocido.

De esta muestra bastante representativa, ninguna persona que se cambió a HTTPS lo hizo correctamente. La mayoría de las veces los usuarios se han detenido para activar SSL en el lado del host – OVH lo hace de forma nativa, lo que puede exponerle a situaciones de contenido duplicado en Google.

Este tutorial es también el más completo sobre el método correcto a adoptar para pasar limpiamente un sitio de HTTP a HTTPS. Casi toda la información disponible sobre este tema es actualmente errónea o parcialmente completa, aunque las consecuencias técnicas pueden ser catastróficas y especialmente para su referenciación.

También tenga en cuenta que el método descrito aquí está enfocado para WordPress, ya que aunque no se basa en un plugin que hace el trabajo por usted, sí que empleamos algún plugin durante el proceso. No obstante, la guía contiene información suficiente para realizar el proceso en casi cualquier página web, simplemente sería necesario sustituir el uso de plugins por algún otro complemento o acción manual.

Te recomiendo encarecidamente no utilizar un plugin para realizar este tipo de manipulación, principalmente por razones de rendimiento, y evitar posibles conflictos durante la migración.

Qué es un certificado SSL

SSL (Secure Sockets Layer) es la tecnología de seguridad estándar para establecer un enlace cifrado entre un servidor web y un navegador.

Este enlace asegura que todos los datos pasados entre el servidor web y los navegadores se mantengan privados e íntegros.

SSL es un estándar de la industria y es utilizado por millones de sitios web en la protección de sus transacciones en línea con sus clientes.

¿Para qué se utiliza un certificado SSL?

Esta es probablemente la pregunta que más a menudo me hacen cuando oigo hablar de este cambio a HTTPS. Podemos contar con 3 razones principales: seguridad, referenciación y requisitos técnicos para WordPress.

El certificado SSL refuerza su seguridad

Un certificado SSL no es ni más ni menos que un archivo de datos que habilita el protocolo HTTPS en un servidor. Este protocolo garantiza una conexión segura al cifrar los intercambios entre el usuario de Internet y el servidor. Por ejemplo, en su página de inicio de sesión de back office, un sitio tradicional sin cifrado expone la contraseña en texto plano en la red de Internet. Por lo tanto, usted comprende la importancia de esta transición en términos de seguridad.

Todos los certificados tienen un nivel de seguridad satisfactorio, la diferencia entre un certificado gratuito y uno de pago está relacionada con las cuestiones de seguros (útil para los sitios de comercio electrónico) y la reputación emitida por estos últimos.

La presencia de un certificado SSL mejora indirectamente su referenciación

También es una recomendación oficial de Google que ahora muestra una advertencia en su navegador Chrome para sitios no seguros. Tener un sitio en HTTPS no mejora directamente la referenciación sino la percepción general que sus visitantes pueden tener con la presencia de un candado en la barra de direcciones del navegador.

En julio de 2018, se lanzará una nueva versión de Chrome que mostrará la etiqueta “No seguro” para cualquier sitio web que no utilice SSL. Esto es independientemente de si aceptan pagos o tienen alguna forma.

Desde el punto de vista de la optimización de la conversión, se trata de un grave factor de’confianza negativa’. Así que, ya sea que esté tratando de crear una lista de correo electrónico, vender productos en cualquiera de sus páginas o simplemente lanzar un sitio web básico, vale la pena tener SSL.

Estas son las buenas noticias: la mayoría de los anfitriones ahora ofrecen SSL gratuito a través de Let’s Encrypt y es más fácil que nunca de instalar.

WordPress necesita un certificado SSL

Un certificado SSL es un prerrequisito técnico para que WordPress funcione correctamente. Eventualmente, no podrás usar WordPress sin esta tecnología, así que deberías empezar de inmediato.

Para obtener más información, le recomendamos que lea este artículo sobre las ventajas de tener un certificado SSL y cómo elegirlo.

¿Cómo conseguir un certificado SSL?

Hay dos formas principales de obtener un certificado SSL:

  1. Tu proveedor de hosting
  2. Un proveedor de certificados SSL, comúnmente conocido como “autoridad de certificación”.

También puede recibir un certificado gratuito de open-source CA Let’s Encrypt. Debe tener acceso al shell (SSH) para utilizar un certificado de Let’s Encrypt, y debe instalar el certificado manualmente si el host no lo hace por usted. Puedes aprender más sobre cómo hacerlo con esta guía de Certbot.

Afortunadamente, muchos proveedores de alojamiento web, ofrecen certificados SSL gratuitos a través de Let’s Encrypt como una característica estándar en sus paquetes de alojamiento, evitando así que tengas que instalar Let’s Encrypt manualmente por ti mismo/a.

¿Cuáles son los diferentes tipos de certificados SSL?

Cuando visite estos sitios o intente instalar un certificado SSL desde su host, verá que aparecen muchos nombres diferentes. Hay “certificados DV”, “certificados EV”, “certificados comodín” y mucho más.

A continuación veremos un resumen rápido de los diferentes tipos de certificados SSL que existen.

Validación de dominio (DV – Domain Validation)

Este es el tipo de certificado SSL más barato. Es ideal para blogs y sitios web que no procesan ningún tipo de información personal de los usuarios, ya que sólo ofrece un cifrado básico. Requiere que valide la propiedad del dominio, pero el proceso de validación sólo tarda unas pocas horas como máximo.

Validación de la organización (VO – Organization Validation)

Los certificados de VO son un poco más caros que los certificados de VD. Son el nivel mínimo de protección requerido por los sitios de comercio electrónico y cualquier tipo de sitio web que procese datos personales de los usuarios.

Los certificados de DV son validados por usted mismo. Los certificados VO, por otro lado, son validados por lo que ya hemos explicado son “autoridades certificadoras”. DigiCert es un ejemplo de una autoridad de certificación. La validación también suele llevar más tiempo que el proceso de validación asociado a los certificados de DV.

Validación Extendida (EV – Extended Validation)

Este es el tipo de certificado SSL que le da el texto verde y el icono de candado, como se ha indicado anteriormente. Es un certificado más Premium que el DV o el OV. También es el certificado más popular que existe, especialmente entre los sitios de comercio electrónico.

Siguiendo la tendencia de los dos tipos de certificados anteriores, el proceso de validación de un certificado EV es mucho más estricto que el proceso de validación de certificados DV u OV.

SAN

Los certificados SAN le permiten cifrar varios dominios con un único certificado. Normalmente son mucho más caros que los certificados DV, OV o EV de un solo dominio.

Wildcard

Los certificados Wildcard le permiten cifrar un número ilimitado de subdominios en un solo dominio.

¿Qué pasos hay que seguir para cambiar a HTTPS?

Una vez vista la teoría, ¡vamos a la práctica!

Todos los pasos descritos a continuación son obligatorios, ninguno es opcional. Toma alrededor de una hora de trabajo para completarlos mientras se siente cómodo con la técnica.

Realice una copia de seguridad de su base de datos

Antes de ir más lejos, te recomiendo hacer una copia de seguridad de su base de datos MySQL o MariaDB.

La necesitarás para volver al punto inicial si algo salgo mal.

Sólo te llevará unos minutos y te ahorrarás horas en caso de problemas. No te la juegues.

Desplegar un certificado SSL

Vaya a su proveedor de alojamiento que le proporcionará un certificado gratuito de Let’s Encrypt. Para un sitio de comercio electrónico, recomiendo la compra de un certificado que llevará un seguro y una vida de al menos un año – Let’s Encrypt certificados se renuevan automáticamente cada 3 meses.

Por regla general, la generación de un SSL gratuito se realiza con un simple clic. Compruebe que este último no esté ya activo como es el caso de OVH que activa Let’s Encrypt y por lo tanto el HTTPS en todos los sitios. Esto puede resultar en la duplicación de su sitio en los motores de búsqueda si usted no toma los siguientes pasos. Un caso de estudio que he notado muchas veces durante las auditorías de sitios de WordPress que realizo regularmente.

Una vez que el certificado esté activo, introduzca la URL de su sitio en su navegador favorito añadiendo https:// justo delante del nombre de dominio. Un candado verde debe aparecer, es probable que sea amarillo en presencia de contenido mixto lo que veremos más adelante.

Redirigir el tráfico a HTTPS

Por ahora, tenemos un sitio accesible de 2 maneras: HTTP o HTTPS. Necesitamos mantener sólo una variante para que los visitantes y los robots de Google sean dirigidos a la versión segura correcta.

Utilizaremos las tradicionales redirecciones tipo 301, las que permiten indicar de forma seo-amigable la URL permanente de un nuevo contenido. No hace falta decir que no vamos a poner tanto 301 como hay contenido en su sitio, sería interminable y contraproducente.

Simplemente abra su archivo.htaccess y añada las siguientes líneas:

# BEGIN Redirect HTTP to HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://tutorialwp.online/$1 [R=301,L]
</IfModule>
# END Redirect HTTP to HTTPS

Asegúrese de reemplazar el nombre de dominio con el suyo propio. Existe una alternativa para detectar automáticamente el dominio pero me parece más fiable y eficiente indicarlo directamente.

Ahora vuelva a su navegador web y actualice la página: será redirigido automáticamente a la versión HTTPS. Esto es válido para todas las URLs en este dominio, así que haga la prueba abriendo una página de su sitio. Reemplace https:// por http:// y vea la redirección al equivalente HTTPS. Mágico, ¿verdad?

Gracias a esta técnica, Google y los motores de búsqueda sólo tardarán unas horas en actualizar su índice.

Reescribir URLs en la base de datos

WordPress almacena las URLs presentes en tu contenido como rutas absolutas. En pocas palabras, si usted hace un enlace en el cuerpo del texto de una página a otra página, la URL del enlace está completa. Así que necesitamos cambiarlos en masa para que http:// sea reemplazado por https:// usando un script especializado como Search Replace DataBase.

Se deben evitar las técnicas manuales que consisten en buscar/reemplazar URLs directamente en un editor de código porque no se pueden gestionar datos serializados. Este tipo de datos se utiliza ampliamente en los creadores de páginas, por ejemplo.

Este script gratuito se utiliza normalmente para modificar la dirección de un sitio y también encuentra su utilidad para cambiar a HTTPS.

Search & Replace

Ejecute el script en el navegador introduciendo el nombre de la carpeta después de su dominio. Por mi parte, lo llamé srdb que da ejemplo.com/srdb para llegar a la página del script.

En el campo reemplazar, escriba la URL como http://example.com y https://example.com en el campo con. Recuerde lo siguiente: reemplazamos sólo la parte que cambia. Así que no hay duda de si hay o no una barra al final.

A continuación, haga clic en marcha en seco para realizar una prueba. Una lista de artículos estará disponible mesa por mesa, lo que le permitirá comprobar que todo funciona a la perfección.

Si las pruebas son concluyentes, realice una ejecución en vivo y luego proceda con los reemplazos. Una vez realizados los cambios, haga clic en eliminarme para eliminar el script del servidor o hágalo manualmente utilizando su cliente FTP favorito. Nunca debe dejar este tipo de script en su servidor como medida de seguridad.

Este paso debería resolver casi todos los problemas de contenido mezclado en sus páginas.

Editar archivo wp-config.php

Este archivo de configuración se genera durante la instalación de WordPress. Vincula la instalación a la base de datos, pero ofrece muchas otras opciones de configuración.

Añadiremos la siguiente línea que fuerza el uso de HTTPS en el back office:

define ('FORCE_SSL_ADMIN' , true);

Compruebe también que las URL de instalación no estén especificadas en este archivo. Esta técnica ofrece la ventaja de bloquear esta configuración en el back-office y evita un error de manipulación que se vincularía a un cambio accidental de URL. Aquí hay un ejemplo para este sitio:

/** Definir la URL por defecto **/
define('WP_HOME', 'https://tutorialwp.online');
define('WP_SITEURL', 'https://tutorialwp.online');

Comprobar el contenido mezclado

Este paso es probablemente el más complicado porque requiere habilidades de desarrollo Web para WordPress. Algunas páginas de su sitio probablemente combinarán URLs en HTTP y otros HTTPS y esto, a pesar de la reescritura operada en base. Este es a menudo el caso de las URLs que están codificadas en el código de un tema, plugin etc. En teoría, este no debería ser el caso en un mundo perfecto donde el desarrollo está bien hecho.

Para identificar estos casos, navegue por las páginas principales de su sitio que utilizan diferentes plantillas, es decir, utilizando diferentes archivos PHP del tema. Si el candado verde se vuelve amarillo como en Firefox, significa que algunos recursos todavía se cargan en HTTP. Una pequeña búsqueda en el código fuente o a través de la pestaña Medios en la ventana de Información de página le dará las URLs incorrectas.

Editar las propiedades de Google Analytics

Para cada una de sus propiedades y sus vistas de Google Analytics, tendrá que modificar HTTP por HTTPS en las listas desplegables proporcionadas para este propósito como ésta:

Agregar propiedades en Google Search Console

Al igual que las dos propiedades HTTP que ya deberían estar listas, debería añadir https://example.com y https://www.example.com e indicar a Google su versión preferida.

De esta forma, sólo habrá una variante visible en los resultados de la búsqueda.

A continuación, puede configurar estas nuevas propiedades enviando los nuevos sitemaps a Google. Esto sigue siendo opcional porque un sitio bien construido y ya optimizado se actualizará rápidamente en los resultados de búsqueda.

Editar el archivo robots.txt

El archivo robots.txt, presente en la raíz de todos los sitios desarrollados en WordPress, contiene instrucciones relativas a la indexación por los motores de búsqueda. Si utiliza SEOPress PRO, puede modificarlo directamente desde su oficina. Así que recuerde actualizar la URL del mapa del sitio que a menudo se inserta en la primera línea.

Actualizar enlaces entrantes

Ni que decir tiene que no podrá ponerse en contacto con cada webmaster uno por uno para pedirle que actualice los enlaces entrantes – los famosos backlinks, para pasarlos en HTTPS. Sin embargo, usted tiene control sobre sus diferentes perfiles de redes sociales (Facebook, LinkedIn, Instagram, etc.) o Google My Business.

¿Qué herramientas para comprobar la calidad de su certificado SSL?

Existen muchas herramientas disponibles para verificar la correcta implementación de un certificado SSL.

Con Let’s Encrypt, la implementación es proporcionada por su proveedor de alojamiento, por lo que no debería tener ningún problema. En un certificado pagado, es otra historia y tendremos que asegurarnos de que todo está bien.

Así que le aconsejo que pruebe sus sitios con SSL Labs o SSL Checker.

Para usuarios avanzados, también puede comprobar el nivel de seguridad de sus cabeceras mediante Cabeceras de seguridad.

Algunas optimizaciones en su archivo.htaccess le darán una calificación de A pero tenga cuidado de no romperlo todo!

En resumen, cambiar a HTTPS ya no es una opción sino una necesidad en muchos aspectos. No espere más y póngase en contacto con nosotros si está buscando un socio técnico para llevar a cabo esta operación.