Cómo poner un certificado SSL en tu blog y, además, gratis
Siempre he tenido curiosidad por tener un certificado SSL en mi blog, pero el coste de los certificados siempre me ha frenado. Satisfacer mi curiosidad no vale 75 dólares (o más) cada año.
Hace un par de semanas, en una cena con compañeros de Tetuan Valley, oí a un par de ellos hablar sobre las bondades de Let’s Encrypt. Se trata de una iniciativa de la Electronic Frontier Foundation que genera certificados SSL perfectamente válidos y gratuitos.
Al día siguiente, estuve leyendo la documentación de Let’s Encrypt y todo iba en la línea que comentaban. El proceso de instalación y renovación de los certificados SSL gratuitos es tremendamente sencillo y completamente automatizable. Cuentan con un cliente para los principales sistemas operativos y servidores web que reduce el proceso a unos pocos comandos. Así que, si gestionas tu propio servidor, ya no tienes ningún motivo para pagar por tus certificados SSL, porque los de Let’s Encrypt te proporcionan el mismo nivel de seguridad y confianza, pero completamente gratis. Si tienes tu blog en un hosting compartido sin acceso total a la máquina, te interesa seguir leyendo.
Instalar un certificado SSL en un hosting compartido
Mi blog está alojado en un hosting compartido que acepta certificados SSL. Ya hay muchos proveedores de alojamiento que han automatizado la incorporación de certificados SSL de Let’s Encrypt. No es el caso del mío: ganan dinero vendiendo certificados SSL, así que tardarán en aceptar estos otros. Además, no puedo utilizar el cliente de Let’s Encrypt: es raro que, en un hosting compartido, tengas el nivel de acceso que necesitas para instalar nuevos programas y ejecutarlos.
Así que, en un primer momento, supuse que no iba a poder ponerle un certificado SSL gratuito a mi blog. Afortunadamente, tras un par de búsquedas más, llegué a https://gethttpsforfree.com, cuyo objetivo es exactamente el que dice su nombre: que puedas conseguir https gratis (cuando no puedes o no quieres usar el cliente de Let’s Encrypt, añado yo).
Lo que sí vas a necesitar es acceso por SSH a la máquina en la que corre tu web o blog. Si no puedes conectarte por SSH, tendrás que seguir dependiendo de lo que quiera ofrecerte tu proveedor de hosting en lo que a https se refiere. Con acceso por SSH, podrás ejecutar los comandos que, paso a paso, te indicará la página de “gethttpsforfree”. Podrás ver que el proceso es tan sencillo que no merece la pena ni hacer un recorrido por él: ejecuta las instrucciones de cada paso e irás avanzando.
En uno de los últimos pasos, esa página te pedirá que valides que tienes control sobre el dominio en el que quieres instalar el certificado SSL. Te da dos opciones: ejecutar una serie de comandos Python o colocar un determinado archivo de texto en una ruta específica. Si tu caso es como el mío, no podrás ejecutar esas instrucciones porque no tendrás permisos. Te tocará crear el archivo con el nombre, contenido y ruta que te indica la página. Si completas con éxito ese último paso, se generará tu certificado SSL gratuito.
Ya has generado tu certificado HTTPS
El certificado SSL/TLS es un simple texto que puedes copiar y pegar con facilidad. Si necesitas guardarlo como un archivo, guárdalo como un archivo de texto con extensión ".cert". Después, ve al panel de control de tu blog o web y, en la opción correspondiente, pega el texto del certificado (o indícale dónde lo has guardado como fichero) y del certificado intermedio y, listo, ya tienes tu blog protegido mediante https con un certificado SSL, completamente gratis.
A diferencia de la mayoría de los certificados SSL comerciales, que suelen tener un año de vigencia, los de Let’s Encrypt sólo duran 90 días. Si estás en el mismo caso que yo, no podrás automatizar la renovación del certificado SSL. Así que ponte un recordatorio en el calendario (te recomiendo que bastante antes de los 90 días). Tendrás que repetir el proceso de generación del certificado SSL gratuito en tu blog cada tres meses o menos. Afortunadamente, tras la primera vez es un proceso sencillo que no debería llevarte más de cinco minutos.
Después de instalar el certificado SSL
Cada blog es un mundo, así que no puedo dar unas pautas que sirvan para todas las configuraciones. En mi caso, tuve que prestar atención a cosas como:
Cambiar en Wordpress la URL del blog, para que incluya el HTTPS y, así, todos los vínculos vayan por SSL/TLS.
Limpiar por completo el plugin de caché.
Añadir en el archivo .htaccess unas líneas para redirigir todo el tráfico "normal" a la versión en HTTPS. En mi caso, tuve que añadir esto, pero ten en cuenta que tus necesidades pueden ser muy distintas. Quizá, por ejemplo, necesites alguna regla más para tener en cuenta las "www". Recuerda que debes tener cuidado al trastear con el .htaccess:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] <IfModule mod_rewrite.c>
Con ese cambio en el archivo .htaccess ya no deberías tener grandes problemas. No obstante, echa un vistazo a tu plantilla por si tienes puestos "a fuego" vínculos absolutos con el "http normal". Te ahorrarás una redirección cada vez que alguien haga click en ellos.
¿Qué me proporciona el HTTPS?
Seamos realistas: en un blog personal como este, no hay una gran diferencia al usar un certificado SSL/TLS. Para algunos visitantes, puede ser una indicación de profesionalidad. En general, las comunicaciones seguras contribuyen a la seguridad de la web, pero no es que mi blog o el tuyo vayan a suponer una gran diferencia a nivel global.
Finalmente, algunos hablarán del impacto en el SEO que puede llegar a tener. Esto no es una leyenda urbana, sino que es completamente oficial: el HTTPS es una de las ¿200? señales que usa Google para determinar el posicionamiento de su web. Sin embargo, es una señal de muy poco peso. No esperes un cambio drástico en tu posición en los resultados de búsqueda sólo porque instales un certificado SSL de Let's Encrypt.
En cualquier caso, lo mío fue más un ataque de curiosidad. No descarto que, tras tres o cuatro renovaciones manuales del certificado, me acabe hartando y no lo renueve nunca más.