Certificados HTTPS en WordPress con Let’s Encrypt

    lets-encrypt

    Si eres un asiduo a mi blog, o de vez en cuando has entrado por error pinchando un enlace (bueno, no habrá sido para tanto), te habrás fijado que ahora se accede usando el protocolo https:// o te aparece un candado en la barra de direcciones. Y pensarás: “bueno, pues ahora se habrá metido a vender artículos online…“. Pues nada más lejos de la realidad (por ahora, eh); simplemente he incluido un certificado SSL para mostrar mi blog a través del protocolo HTTPS; y lo mejor de todo, es que ha sido totalmente gratuito.

    Tan sencillo como solicitarlo, y realizar los cambios pertinentes en mi instalación de WordPress. Bueno, en realidad hay que seguir varios pasos para configurarlo y que el resto del mundo online me pueda ver y navegue por las páginas como casi siempre: sintiéndose más seguros pero leyendo las mismas chapas que acostumbro a soltar por aquí. Si te ha picado el gusanillo de saber un poquito más, y si crees que puede serte útil en tu web, sigue en sintonía conmigo.

     

    Qué es el protocolo HTTPS

     

    Hypertext Transfer Protocol Secure (protocolo seguro de transferencia de hipertexto) es un protocolo de aplicación basado en el HTTP; tiene como fin la transferencia segura de datos de Hipertexto. Podríamos decir que es la versión segura de HTTP, ya que usa un cifrado basado en SSL/TLS para desarrollar un canal criptográfico entre el servidor y cliente. Lo que se logra es que la información más delicada (como claves y passwords) no sea visible si alguien intercepta la transferencia de datos de la conexión; simplemente verá registros en clave, inviables de descifrar.

    Las páginas que utilizan este protocolo son fácilmente identificables; basta fijarse en el https:// que lleva la dirección URL en la barra de navegación de las páginas web. En algunos navegadores va acompañado del ya característico candado verde.

    La motivación para usar el protocolo HTTPS es poder autentificar la web visitada y proteger la privacidad e integridad de la comunicación. Hasta ahora se estaba utilizando principalmente en entidades bancarias, tiendas online o para los emails; incluso en cualquier tipo de servicio que requiera intercambiar datos personales, contraseñas o información sensible. También es verdad que en muchos casos solo tienen una parte de sus URLs en HTTPS, mientras el resto de la web no dispone de esta protección.

    En 2014, Google anunció que empezaría a tener en cuenta el uso de HTTPS en los sites; no solo para el sistema de indexación sino como factor de posicionamiento. Aunque ahora no es un elemento de peso, con el tiempo tenderá a gozar de más protagonismo. Google busca reforzar la seguridad de la información en Internet, y al mismo tiempo proteger la privacidad de los usuarios; y qué mejor forma que recompensando a las páginas que tengan certificado SSL.

    “Pero espera”, dirás. “Esto tiene un coste, ¿verdad?” Sigue leyendo…

     

    Let’s Encrypt para certificados SSL

     

    Hasta ahora, disponer de un protocolo HTTPS requería hacer un desembolso económico, con precios cercanos a los 500 euros. Además, para tener un certificado SSL era necesario realizar varios pasos previos y se demoraba algunas horas en tenerlo operativo. Pero todos los inconvenientes para presentar nuestra web por HTTPS pueden ser cosa ya cosa del pasado; este año se ha presentado una entidad certificadora gratuita y viene acredita por patrocinadores como Cisco Systems, Fundación Mozilla o la Universidad de Michigan. Tienen el apoyo pleno de Facebook y Google, y todo bajo el impulso de la Fundación Linux. Casi nada.

    Let’s Encrypt es el resultado de la suma de todos estos esfuerzos. Ya no será necesario pagar a una entidad certificadora; Let’s Encrypt lo hace gratuitamente y como hemos visto viene respaldada por importantes avalistas. Los certificados son gratuitos, libres y automáticos; la instalación es rapidísima y están reconocidos por los principales navegadores (son de 2048 bits, los que recomienda Google). Y lo mejor, la renovación es automática: instalar y olvidarte de más gestiones burocráticas.

    Bueno, todo esto que suena de fábula tiene un “pero”; y no es otro que tu proveedor de hosting tenga implementado el sistema para certificados gratuitos Let’s Encrypt. No son todos los que han dado este paso, pero sí es verdad que cada vez más ofrecen la posibilidad. Pregunta si es tu caso por un casual, muchas empresas miran por sus clientes y facilitan cambiarse de protocolo; y si estás pensando en migrar de compañía, puede que este post te sirva de excusa para ello.

    Si todavía tienes dudas, un apunte más: el actual protocolo HTTP tiene los días contados. En poco tiempo será relevado por el HTTP/2 (el actual es el 1.1), mucho más rápido y seguro que el vigente; hablamos de una mejora de rendimiento de un 60%. Y sí, lo has adivinado: HTTP/2 necesita HTTPS; requiere de un certificado SSL, por lo que si ahora instalas uno, ya estarás listo para la siguiente generación de la World Wide Web.

     

    Guía para activar Let’s Encrypt en tu WordPress

     

    Antes de nada, advertirte que aunque los pasos son sencillos y genéricos, es posible que tengas que revisarlo cuidadosamente. WordPress es un mundo de plugins y configuraciones, por lo que lo mejor es supervisar concienzudamente lo que tenemos instalado y las modificaciones que vayamos realizando. Para preparar el terreno, he preparado una lista de comprobaciones previas para que la transición sea dulce y rápida:

     

    1. Vacía la caché de WordPress. Si estás usando un plugin, usa el botón correspondiente para borrar caché y desactívalo.
    2. Si estas usando una red de entrega de contenidos (CDN), apágala. Estos dos primeros puntos son esenciales para que no queden copias de datos que en breve estarán “obsoletas”.
    3. Cualquier plugin de seguridad (como iThemes Security) es mejor tenerlo desconectado momentáneamente; aunque están preparados para protocolos HTTPS si no se configuran al final del proceso, pueden bloquear la web. Más adelante volveremos con este plugin porque nos va a ser de utilidad.
    4. Asegúrate que el archivo robots.txt está accesible y funcionando, y que no bloquea ningún recurso importante.
    5. Haz una copia de seguridad de la web, y sobre todo de la base de datos; no es que vaya a pasar nada grave, pero en estos procesos mejor guardarnos las espaldas.
    6. Deja sesiones las abiertas en tu WordPress y en el cPanel de tu hosting. Habrá que modificar un par de opciones/archivos, y es recomendable tener acceso inmediato para seguir el tutorial.

     

    Tras estos preparativos, comencemos con la guía de pasos:

     

    1.- Activa el certificado SSL de Let’s Encrypt

     

    Como para poder usar HTTPS necesitarás instalar un certificado SSL, es preciso adquirir uno. Si tu proveedor ofrece uno gratuito, tan sencillo como entrar en tu menú de hosting y activarlo desde certificados.

     

    certificado-ssl-lets-encrypt

     

    Al crear un certificado SSL de Let’s Encrypt, advertirás que caduca a los 3 meses; esto es normal, se van renovando automáticamente. Si decides revocarlos, existe la opción; pero una vez activados son tuyos para siempre.

    Y ya está, tendríamos nuestro sitio web listo para el protocolo HTTPS. Aunque todavía tendremos que configurar algunas opciones y servicios externos para que todo funcione correctamente. Pero el paso importante ya está tomado, y estamos un poco más cerca de nuestro objetivo.

     

    2.- Actualiza la configuración de WordPress

     

    Nuestro WordPress debe ser consciente de que ha habido un “pequeño” cambio en la manera en que se va a mostrar al mundo. Para ellos, accedemos al menú Ajustes->Generales:

     

    ajustes-generales-de-wordpress

     

    • En Dirección de WordPress (URL): cambiamos http:// por https://
    • En Dirección del sitio (URL): cambiamos http:// por https://

     

    Ahora WordPress sabe que se va a conectar por HTTPS. Para que el protocolo también funcione a nivel de administrador, hay que configurar el archivo wp-config.php. Para ello, recordarás que hemos hablado del plugin iThemes Security; si lo tenías instalado, actívalo y accede a la opción “SSL“: hay que conectar las casillas para que SSL acceda a toda nuestra web (página de acceso y panel de administrador incluido). Si no tienes este plugin pero sí uno parecido, seguro que viene una opción para activarlo. Y si no dispones de ninguno, no te preocupes: tan fácil como añadir estas líneas a tu archivo wp-config.php:

     

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

     

    3.- Añade redirecciones 301

     

    En una migración de HTTP a HTTPS, redireccionar todas las nuevas URLs (páginas, posts) es un paso importante. Aunque WordPress puede redireccionar de forma automática las solicitudes HTTP a HTTPS, es mejor ahorrar recursos; y nada mejor que una redirección 301 para resolverlo. Aunque se puede hacer desde un plugin, ya que estamos editando archivos pues aprovechamos.

    Abrimos el archivo .htaccess y agregamos la siguiente instrucción, arriba en la cabecera:

     

    Para servidores Apache:

     

    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^(.*)$ https://pontuweb.com/$1 [R=301,L]

     

    Para servidores NGINX:

     

    server {
    listen 80;
    server_name pontuweb.com;
    return 301 https://pontuweb.com$request_uri;
    }

     

    sustituyendo pontuweb por el dominio de tu página, y añadiendo las www si las utilizas. De todas formas, tu proveedor de hosting te puede proveer el código correcto para tu servidor en concreto. Utilizando una redirección 301 no vamos a perder posicionamiento en buscadores, y además Google no nos penaliza por contenido duplicado.

     

    4.- Reemplaza todos los links de la base de datos

     

    Vamos a actualizar todos los enlaces y URLs de nuestra base de datos, de HTTP a HTTPS. Es un proceso sencillo pero crucial para no encontrarnos con sorpresas más adelante; el uso de URLs relativas es la mejor forma de construir una web, pero nunca puedes estar seguro de que se cumpla.

    Necesitamos descargarnos el archivo “Database search and replace script in php” para que nos ayude en el proceso. Está preparado para trabajar con nuestro CMS, y respaldado por WordPress.org, por lo que es totalmente seguro. Descomprimimos el archivo y lo subimos a una carpeta nueva en la raíz de tu instalación en WordPress. Una vez allí lo ejecutamos abriendo un navegador y escribiendo en la barra de dirección “pontuweb.com/carpeta/searchreplacedb.php” (lógicamente escribe tu propio dominio). Se ejecutará la aplicación y no te preocupes, no hay que modificar casi nada:

     

    search-and-replace-db

     

    • En la primera pantalla, simplemente pulsa el botón “Submit“.
    • En la segunda pantalla, veremos los detalles de nuestra base de datos; de nuevo no modificamos nada y pulsamos “Submit DB details“.
    • En la tercera pantalla, podremos seleccionar las tablas para escanear; como ya vienen todas seleccionas, pulsamos el botón “Continue” y luego pinchamos “Aceptar” en la ventanita que se abrirá.
    • En la cuarta pantalla, es la única que tendremos que modificar. Aquí es dónde le decimos al programa que queremos actualizar de HTTP a HTTPS. En mi caso sería:

     

    reemplazando-la-base-de-datos

     

    • Como siempre, aquí incluyes tu dominio pero añadiendo https:// en la segunda opción. Pulsamos “Submit Search String” y después “Aceptar” en la ventanita que se abre.
    • Y ya está. La última pantalla nos indicará que el cambio ha sido completado y las modificaciones efectuadas. Puedes cerrar esta pestaña del navegador.

     

    5.- Ajusta los últimos detalles en WordPress

     

    Aunque suena todo muy complicado, la verdad que el proceso en la instalación de WordPress es sencillo y rápido. De todas formas si has hecho copia de la base de datos, puedes proceder sin miedo. Y por último, y no menos importante, cuando termines no te olvides borrar el archivosearchreplacedb.phpde tu servidor: ha cumplido su función y es bueno no dejar rastros para posibles miradas indiscretas. 😉

    Es recomendable ir revisando la web desde otro navegador en cada paso, para cerciorarnos de que todo va marchando bien. De todas formas, en este momento es cuando tendríamos la web perfectamente migrada y funcionando a tope. Entra si quieres en Ajustes->Enlaces permanentes en WordPress y guarda los cambios para actualizar tus URLs personalizadas. Ya puedes ir activando de uno en uno el resto de plugins que estaban desactivados, y revisa que se adaptan sin problemas al certificado SSL.

    Navega por tus páginas y confirma que tienes el https:// en su sitio o te aparece el candado verde. Dedica un poco de tiempo (si tienen que ser un par de horas, pues no pasa nada) y prueba el rendimiento en varios navegadores. La parte importante de la migración está completa y tenemos nuestra web hablando por el nuevo protocolo. Pero no hemos terminado: ahora hay que decirle al resto del mundo que nos hemos mudado.

     

    6.- Crea una nueva propiedad en Google Search Console

     

    La web ya la tenemos operativa, aunque hay que notificarle a Google que usamos un nuevo protocolo; y es que aunque se acceda por HTTPS, para Google es un sitio totalmente distinto. Si ya teníamos creada una propiedad no importa: déjala ahí, no se borra (Google lo aconseja) pero abre una nueva propiedad para el dominio con https:// en tu cuenta de Google Seach Console:

     

    anadir-una-propiedad-a-search-console

     

    Configura la propiedad de la misma manera que la anterior (si la hubiera), con las opciones pertinentes. Aunque no es necesario para rastrear la web, sube el archivo sitemaps.xml para que Google actualice su índice; para ello, envía su ubicación desde Rastreo->Sitemaps.

    Para acelerar un poco más las cosas, podemos hacer que el robot de Google acceda a nuestro sitio web, lo procese y compruebe si tenemos bloqueado algún recurso de la página. Desde el menú Rastreo->Explorar como Google pulsamos en “Obtener“. A continuación, en la fila de abajo, selecciona “Enviar al índice“; se abrirá una ventanita en la que marcaremos “Rastrear esta URL y sus enlaces directos“. Con esto, ya tendríamos a Google al corriente de la migración.

     

    explorar-como-google

     

    7.- Prepara Google Analytics para el cambio a HTTPS

     

    Si dispones de una cuenta en Google Analytics (deberías, aunque tengas poco tráfico), ahora tenemos que actualizar la URL para no perder datos y estadísticas. Tan sencillo como ir hasta Administrador->Propiedad->Configuración de la propiedad y hacer el cambio en la pestaña “URL predeterminada“:

     

    configuracion-de-la-propiedad-en-analytics

     

    Por supuesto, actualiza también la configuración de las vistas que utilices. Ya tendríamos nuestro Analytics funcionando; si tenemos bastantes visitas, después de unos minutos podremos ver sus datos en Informes->Tiempo real. De todas formas, para asegurarnos que todo funciona, revisa el estado de seguimiento en Propiedad->Información de seguimiento->Código de seguimiento. Si por alguna razón no recibe datos, puede que tengas que restablecer la conexión; revisa que el código de seguimiento esté correcto y que no tengas ningún filtro obstaculizando el flujo de datos.

    Una buena idea para dejarlo todo bien atado, es asociar los datos de Search Console con Analytics. De esta manera conseguiremos dos cosas: asegurarnos que seguiremos recibiendo estadísticas, y que Google Analytics pueda mostrar parte de esos datos en algunos de los informes. Para ello, vamos a Administrador->Propiedad->Configuración de la propiedad->Search Console y pulsamos en “Search Console“. Desde ahí conectaremos con nuestra cuenta de Search Console y así asociar la propiedad con el sitio web; podremos elegir un método para verificar la información de seguimiento en Analytics. Dos pájaros de un tiro.

     

    8.- Comprueba la seguridad del certificado SSL de Let’s Encrypt

     

    Seguro que todavía quieres despejar la duda de si el certificado realmente funciona; y sobre todo, confirmar por algún medio de su seguridad y validez. Hay varias herramientas online; una de ellas es GlobalSign SSLLabs, que hará un exhaustivo examen de configuraciones, protocolos y detalles del certificado. Junto a estos datos, mostrará una puntuación global que refleje su autenticidad, vigencia y el valor para tu sitio web.

     

    puntuacion-certificado-ssl

     

    9.- Consideraciones adicionales tras la migración

     

    Veamos algunas actualizaciones que deberías repasar tras el cambio HTTP – HTTPS:

     

    • Actualizar enlaces en los perfiles de redes sociales. Si usas apps en Facebook, reemplaza la configuración con la nueva URL.
    • Actualizar tu cuenta de Google Adwords.
    • Si tienes herramientas de email marketing, modifica los enlaces.
    • Reactiva el CDN, aunque configúralo con las nuevas premisas.
    • Considera contactar con los webmasters de los sitios importantes que apunten a tu web; si consigues que cambien la URL tendrás mucho ganado en tu estrategia de SEO.

     

    Puede que los primeros días pierdas algo de tráfico y posicionamiento al mover el sitio web a HTTPS: en algunos casos hay un pequeño descenso de velocidad de carga de las páginas y pérdida de visibilidad por las redirecciones 301. Es algo normal, pero si haces el proceso correctamente y sigues todos los pasos, con el tiempo notarás mejoras sustanciales. Además, tus visitantes tendrán en consideración el uso del protocolo HTTPS y sus datos estarán mucho más seguros.

    ¿Realmente merece la pena? Si tienes la oportunidad de integrar un certificado SSL gratuito a tu web, sea de la temática que sea, no lo dudes. Como habrás visto no es un proceso especialmente complicado, incorporarás un nuevo factor al posicionamiento y estarás de los primeros en la lista cuando se generalice el protocolo HTTP/2. Por supuesto, si tienes una tienda online o necesitas que la transacción de datos con tus clientes sea segura, ya estás tardando. Si ves que los precios no se ajustan a tu presupuesto, siempre puedes buscar un hosting que se adapte a las nuevas tendencias de Internet y ofrezca certificados Let’s Encrypt, libres y sin coste.

    Etiquetado , , , .Enlace para bookmark : Enlace permanente.

    11 Respuestas a Certificados HTTPS en WordPress con Let’s Encrypt

    1. Muy buen artículo como siempre Miguel 🙂
      Nosotros hemos empezado a implementar el certificado SSL no solo en nuestra web sino también en las de nuestros clientes.
      Desde luego merece la pena.
      Un abrazo!

      • MiguelAngelddl dice:

        ¡Hola Luis!

        Muchas gracias. La verdad es que teniendo la oportunidad, el esfuerzo luego se verá recompensado.
        Y enhorabuena por la iniciativa con vuestros clientes, se nota que los cuidáis tan bien como siempre.

        ¡Otro abrazo para vosotros!

    2. Luis dice:

      Hola, y ustedes hacen todo el proceso por si alguien quiere sus servicios?

      • MiguelAngelddl dice:

        Muy buenas Luis.

        Bueno, esto es un blog personal, donde redacto artículos para la comunidad de marketing online.
        Simplemente, es un medio para compartir contenidos que puedan ser interesantes.

        De todas formas, si necesitas alguna ayuda o consejo con el tutorial, puedes preguntarme.

        Saludos.

    3. Luis dice:

      Muchas gracias, ahora que lo dices. Estoy queriendo hacerlo en un blog ya con antiguedad pero primero quiero hacerlo a un nuevo blog de WordPress que aún no he instalado. ¿Qué pasos se debería seguir para hacerlo con un blog nuevo?

      Para quien tiene más experiencia puede parecer fácil pero para mi que no tengo mucha experiencia modificando el .htaccess, tocando la base de datos y algunos plugins que mencionas que no entiendo muy bien su funcionamiento. Me resulta confuso.

      De antemano muchas gracias por compartir con nosotros la información de estos certificados gratuitos.

      • MiguelAngelddl dice:

        Hola Luis, qué tal.

        Puede parecer un poco difícil y lioso, pero el proceso está estructurado y se puede actuar con varias alternativas.
        Si te es complicado editar directamente en el servidor archivos cruciales de WordPress, siempre puedes tirar de plugins que permiten acceder a los archivos .htaccess y robots.txt, como por ejemplo Yoast SEO (y de paso te sirve para el tema del posicionamiento). De todas formas, es verdad que un CMS como WordPress necesita algo de experiencia y conocimientos previos para llevar a cabo una transformación tan determinante como el protocolo de acceso.

        Como me comentas que lo harías con un WordPress de nueva instalación, estaríamos ante un caso un poco más sencillo. Lo único sería activar primero el protocolo SSL en tu servidor, y al empezar la instalación limpia de WordPress ya te reconocería que tienes HTTPS y no tendrías que preocuparte de hacer ninguna modificación. En este caso la cosas son más directas, y como no tienes nada configurado no hay que estar cambiando nada.

        Un saludo.

    4. Luis dice:

      Muchas gracias, pues así como lo explicas ya veo más luz al respecto.

      Entonces (solo para confirmar), sería de AGREGAR EL DOMINIO al hosting –> ACTIVAR el SSL –> instalar WordPress eligiendo de una sola vez que se muestre como https. ¿Verdad?

      • MiguelAngelddl dice:

        Así es, esos serían los pasos fundamentales.

        Ten en cuenta que no hay una base que cambiar, y que el WordPress ya nace sobre el nuevo protocolo.
        El propio instalador te irá configurando las diversas opciones (acuérdate eso sí de seleccionar los enlaces permanentes que tendrá tu sitio).

    5. Luis dice:

      Hola Miguel, vuelvo a consultarte 🙂
      Fijate que al momento de instalar el certificado, luego de agregar el dominio nuevo desde CPanel; voy a activar el certificado (hasta aquí ninguna duda).

      En este punto elijo el dominio y le doy ISSUE (para seguir adelante con la instalación) y en CPanel encuentro tres opciones (cada una con su casilla para activar o desactivar).

      La primera opción es del tipo: dominioprincipaldelhosting .NombreDelDominioNuevo .com la segunda casilla corresponde a: www .dominioprincipaldelhosting. NombreDelDominioNuevo .com y la tercera corresponde a: www .NombreDelDominioNuevo .com

      ¿Tengo que activar las tres casillas o solo la tercera?

    6. Luis dice:

      Hola otra vez Miguel. Lamento tanta pregunta pero surgen nuevas dudas.

      He visto que si escribo en la barra de dirección mibloguel.com me redirecciona automáticamente a la versión https. El caso es que con la recién instalación de wordpress que hice, si escribo en la barra de dirección midominio.com, no me redirige al https. PERO, al entrar a un post desde la página principal, ahí SI me aparece el https.

      Y también probé copiando la url de un post, pegarla en la barra de dirección pero quitarle solo la S. Y me dirige al post, solo que este no me sale con el certificado.

      Creo que sería modificar algo en el archivo .htaccess verdad? solamente que no se como. Por favor, dame un poco de luz al respecto

      • MiguelAngelddl dice:

        Hola Luis.

        No sé cómo se instala el certificado en tu cPanel, pero si el dominio apunta correctamente al hosting, tendría que reconocerte la URL sin problemas.

        En cuanto al WordPress, durante la instalación te habrá preguntado la configuración del nuevo site: ahí tienes que componer correctamente tu site. De todas formas, revisa en Ajustes->Generales y en Ajustes->Enlaces permanentes que tienes el dominio ubicado en https.
        Si es una instalación nueva tal como me dijiste, en el archivo .htaccess no habría que tocar nada. Pero revísalo si está creado: accede al administrador de archivos desde el cPanel y búscalo en raíz.

        Saludos.

    Deja un comentario

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    MiBloguel te informa que los datos de carácter personal que me proporcionas rellenando el presente formulario, serán tratados por Miguel Ángel Lucas como responsable de este blog personal.
    La finalidad de la recogida y tratamiento de los datos personales que te solicito es para gestionar tus comentarios en este blog.
    La legitimación se produce mediante el consentimiento del interesado. El hecho de que no introduzcas los datos de carácter personal que aparecen en el formulario como obligatorios, podrá tener como consecuencia que no pueda atender tu solicitud. Como usuario e interesado te informo que los datos que me facilitas estarán ubicados en los servidores de Webempresa Europa S.L. (proveedor de hosting de MiBloguel) dentro de la UE. Ver política de privacidad de Webempresa. Podrás ejercer tus derechos de acceso, rectificación, limitación y supresión de los datos en miguelangeldll@gmail.com, así como el derecho a presentar una reclamación ante una autoridad de control.
    Puedes consultar la información adicional y detallada sobre Protección de Datos en mi página web (https://mibloguel.com), así como consultar mi política de privacidad.

    Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.