Instalar un certificado SSL para que tu web sea segura

certificado SSL cabecera

Hoy te voy a enseñar como instalar un certificado SSL en tu web. A día de hoy instalar un certificado SSL gratis es gracias a Let’s Encrypt. Let’s Encrypt​ es una organización de certificación que proporciona certificados SSL X.509 gratuitos. Es el resultado de querer democratizar las conexiones seguras en Internet. Era inviable pedir que todas las webs del mundo tuvieran SSL si cuestan dinero, incluso hay certificados SSL muy caros.

¿Aún no sabes lo que es un certificado SSL?

certificado SSL cabecera diferencia

Quizá el término como tal no lo reconozcas, pero lo ves a diario cada vez que accedes a una página web. Las siglas de SSL provienen del nombre Security Socket Layer. Es una capa de seguridad que se añade entre el usuario que entra a una web y al servidor que le proporciona la información solicitada. Hasta hace un tiempo, todas las conexiones web se realizaban, y algunas se siguen a través del protocolo HTTP/1.X o inferiores sin encriptar por lo que era posible interceptar la información que enviaba el usuario al servidor como, por ejemplo, datos bancarios, médicos, contraseñas, etc.

Este sería un ejemplo de certificado SSL que protege a una de nuestras webs:

certificado ssl ejemplo ssl gratuito let's encrypt o de pago

¿Qué tipos de certificado SSL existen?

Existen desde certificados gratuitos que emite Let’s Encrypt, hasta certificados de pago que ofrecen diferencias que te enseñaré a continuación.

  1. Certificados Let’s Encrypt: Como te decía antes, Let’s Encrypt nació con la idea de democratizar el servicio de Certificados SSL para que fueran gratuitos. Hasta por el entonces solo podías proteger tu web haciendo uso de un certificado SSL de pago. ¿Por qué no usa todo el mundo los certificados de Let’s Encrypt?. Let’s Encrypt protege tu web tanto como el certificado más caro que haya. Este tipo de certificados está pensando para webs que son blogs, webs corporativas con carácter informativo, webs que no albergan información sensible o que no sean ecommerce.
  2. Certificados de dominio único: No existe diferencia con el certificado SSL emitido por Let’s Encrypt salvo la entidad que te lo emite y la indemnización que te puede dar el emisor del certificado en caso de que tu web se vea comprometida debido a un “hackeo” del certificado SSL. Let’s Encrypt, por ejemplo, no te indemnizaría.
  3. Certificados SSL multidominio: Misma funcionalidad que los de dominio único solo que estos certificados se pueden usar para varios dominios y no solo para uno únicamente. Es la opción más cómoda si tienes más de una web o dominios.
  4. Certificados WildCard: Se trata de un certificado SSL que protege el dominio principal y los subdominios que tenga de forma ilimitada. Los precios son algo más caros, pero todo depende de si tu web tiene subdominios y los quieres proteger.
  5. Certificados para empresas u organizaciones: Permite mostrar en el certificado SSL el responsable o titular del certificado SSL.
  6. Certificados extendidos (Extended Validation). Son aquellos dominios que son acompañados por una barra verde ancha con el nombre de la empresa u organización. Proporcionan un alto grado de confianza para el usuario por el carácter visual que te comentaba antes. Este sería un ejemplo de certificado SSL extendido:

ejemplo certificado ssl extendido

Como se puede notar en el ejemplo del certificado SSL de validación extendida, en vez de salir “Es seguro” sale directamente el nombre de la organización u empresa que es propietaria de la página web. Llama más la atención, provoca más confianza, pero también es más caro.

¿Quién emite certificados SSL?

Existen multitud de agentes registradores que pueden emitir un certificado SSL para tu web. Te dejo un listado de los más famosos:

  1. Let’s Encrypt (Gratuito)
  2. GeoTrust (Pago)
  3. RapidSSL (Pago)
  4. GoDaddy (Pago)
  5. Thawte (Pago)
  6. DigiCert (Pago)
  7. Comodo (Pago)
  8. Symantec (Pago)

Luego existen proveedores intermediarios que pueden emitir certificados SSL en nombre de esas fuentes. Por ejemplo, Raiola Networks puede emitir certificados SSL como puedes ver en su página web: https://raiolanetworks.es/certificados-ssl/

¿Cuánto tiempo se tarda en expedir un certificado SSL?

Depende del certificado SSL que escojas. Puede ser desde 5 minutos, si eliges el gratuito y más básico, hasta varios días hasta que verifiquen que realmente eres el propietario de la empresa u organización si eliges el SSL de validación extendida. Depende del método de verificación que te pidan puede tardar varios días. En la mayoría de los casos, donde se expiden certificados SSL normales, tardarás 5 minutos puesto que el proceso de verificación es el siguiente:

  • El agente o emisor del certificado manda un correo electrónico a una de las direcciones estándar de tu dominio. Te da a elegir a que buzón mandar el correo como, por ejemplo:
    • admin@midominio.com
    • webmaster@midominio.com
    • postmaster@midominio.com ….
  • Elige uno de los buzones. En caso de que no lo tengas creado, créalo en menos de un minuto en tu panel de administración de alojamiento web.
  • Haz click en enlace que viene dentro del correo electrónico para verificar la propiedad del dominio.
  • Si todo ha ido bien, en un par de minutos tendrás listo los certificados .CA, .CRT y .CRT.CA en el panel de cliente donde compraste el certificado SSL.

Este proceso tan básico es funcional ya que el emisor entiende que el único que puede crear esas cuentas de correo de verificación y acceder a ellas es solo el propietario del dominio. Es posible que un hacker tenga acceso al dominio y lo expida bajo tu nombre. Por eso es recomendable cambiar las contraseñas del panel de cliente de todos los sitios cada cierto tiempo.

¿Tener un certificado SSL ayuda a Optimizar WordPress?

Directamente, no. Tener un certificado SSL es obligatorio hoy en día si quieres que tu web se vea correctamente (Te recuerdo que Google está bloqueando el acceso a las webs que no tienen SSL instalado desde Julio de 2018). Es más, añadir un certificado SSL es añadir una capa más de conexión entre el servidor y el cliente pudiendo ralentizar la carga de la web unos milisegundos ya que el navegador tiene que resolver la conexión encriptada con las llaves públicas y privadas (Time To First Byte).

Debes tener en cuenta que migrar una web a HTTPS puede producir errores como los famosos errores 400 si las URL’s no apuntan correctamente al nuevo protocolo.

¿Cómo instalar un certificado SSL?

Como instalar un certificado SSL de pago emitido por un proveedor

Una vez que tienes el certificado generado en el panel de cliente de tu proveedor, puedes empezar la instalación. Normalmente el proveedor te dará un .ZIP o .RAR con los archivos necesarios a usar o bien te da la opción de bajarte cada elemento de forma separada. Los archivos que necesitas para instalar un SSL son los siguientes:

  1. Un archivo finalizado con la extensión .CRT (Llave pública)
  2. Un archivo finalizado con la extensión .KEY (Llave privada)
  3. Un archivo finalizado con la extensión .CA.CRT (certificado donde viene la información del emisor del certificado).

Una vez que tenemos los archivos a mano, ve al panel de administración de nuestro hosting, en mi caso cPanel, y buscamos una sección o apartado que es la configuración sobre SSL. En cPanel debemos acceder a esta sección:

certificado SSL seccion cpanel

Dentro de la sección de certificados SSL, encontrarás varias opciones de las cuales únicamente nos interesa la que dice “Instalar y administrar SSL para su sitio (HTTPS)” > “Administrar sitios SSL“. Por si no lo ves, deberías hacer click en:

administrar certificado SSL cpanel

A continuación, en esta sección de administrar SSL, verás que sale un mensaje notificando que no se puede crear o instalar un certificado SSL si el dominio no está apuntando al servidor donde estás creando o instalando el certificado. Es lógico al fin y al cabo. Si sigues bajando un poco más dentro de esta misma sección, saldrán 3 cajas donde colocar la información de los 3 archivos que nos dio nuestro proveedor de SSL. En concreto son estas:

administrar certificado SSL cpanel archivos cajas

Si te fijas, en la imagen de arriba te explico que tienes que colocar y en que cajas. En la primera caja colocarás el código dentro del archivo .CRT que nos dio el proveedor. En la segunda caja colocarás el código .KEY del proveedor y por último, aunque es opcional, puedes colocar el .CA.CRT también provisto por proveedor. Una vez colocados los códigos en sus respectivas cajas, si le damos a Instalar Certificado nos redireccionará a la home donde podemos ver que certificados han sido instalados y cual es su estado. Deberías ver algo así:

administrar certificado SSL activo

Como configurar un certificado SSL de pago en mi web

Entonces, una vez que compruebas el estado del certificado SSL está bien, puedes empezar a configurar el certificado en tu web. En la imagen anterior vemos que, para la web optimizarwordpress.com el certificado protege y encripta las conexiones en el dominio principal y sus subdominios principales. Ahora te voy a enseñar como configurar el certificado SSL para que se active en tu web. Si bien tu web se ve ahora con:

certificado SSL no seguro

La idea es revertir ese mensaje para que la web esté encriptada y que cuando algún visitante acceda a nuestra página web, vea el siguiente mensaje o icono en la barra de direcciones:

certificado ssl ejemplo ssl gratuito let's encrypt o de pagoó
ejemplo certificado ssl extendido

Para lograr este efecto, voy a usar WordPress a modo de pruebas, puedo hacerlo de forma automática o manual. Para hacerlo de forma automática bastaría con instalar un plugin que te voy a comentar ahora o bien renombrando todos los enlaces que apuntan dentro de tu web a HTPS y no a HTTP. OJO: Solo los que apuntan internamente a tu web, si tienes enlaces HTTP a otras páginas web déjalo como está puesto que es responsabilidad de esa página externa sin SSL asumir instalar un certificado.

La forma de hacerlo automática es instalar, a modo de recomendación, el plugin de WordPress llamado “Really Simple SSL” que puedes descargar en esta URL: https://es.wordpress.org/plugins/really-simple-ssl/ o bien desde el repositorio interno de WordPress buscando por el nombre del plugin. Una vez instalado el plugin y activado, el plugin te redireccionará a una pantalla con este mensaje:

certificado SSL activar SSL con el plugin really simple ssl

Si la instalación se ha completado de forma correcta… ¡Enhorabuena! Tu web ahora está protegida con un certificado SSL además de contar con la insignia de que “Es seguro“. El resultado, como te vaticinaba anteriormente, será que tu web se vea así ahora:

certificado ssl ejemplo ssl gratuito let's encrypt o de pago

Como instalar un certificado SSL gratuito con Let’s Encrypt

Si optas por la versión gratuita, deberás hacer uso de la herramienta de Let’s Encrypt que incorporan la mayoría de proveedores en su panel de administración de hosting. En el caso del hosting de Raiola Networks este servicio ya viene instalado y solo tienes que activarlo en tu web (Tu web estaría pre-asegurada). Solo te quedaría forzar que los recursos de tu web apunten a HTTPS y no a HTTP. Los elementos o direcciones externas pueden apuntar o no a HTTPS, pero los tuyos, siempre a HTTPS.

Observa si en el panel de administración de tu paquete hosting tienes la posibilidad de crear e instalar un certificado SSL en un par de clicks. Si no es así, y tampoco tienes acceso a la consola de comandos, deberás escribir un ticket de soporte a tu proveedor de alojamiento web para que te active el servicio y te funcione.

Conclusiones tras instalar un certificado SSL

¿Está relacionado directamente instalar un certificado SSL con la optimización de WordPress? Depende de como se mire, pero desde luego es obligatorio tener hoy protegida tu web con un certificado SSL si no quieres que tu web, a partir de Julio de 2018 tu web tenga este mensaje para tus usuarios al acceder a tu web:

certificado SSL inválido

Desde el punto de vista de WPO (Web Perfomance Optimization) instalar un certificado SSL retrasará la carga de la web unos pocos milisegundos (Time To First Byte) debido a las conexiones que hay entre cliente (navegador) y servidor resolviendo con las llaves privadas y públicas del SSL el mensaje del cliente. Y lo mismo ocurre cuando el servidor proporciona una respuesta.