Hace unos meses me encontré con la desagradable sorpresa que Starcom dejaba de ser una Autoridad Certificadora confiable por Chrome y Firefox. Esto implicaba que mis sitios protegidos por HTTPS iban a pasar de candado verde a candado rojo porque el navegador así lo decidía.
Tras maldecir mi mala suerte, manos a la obra buscando comparativas de certificados con sus precios y sus funcionalidades. Cuando ya estaba casi decidido me topé con la maravilla de Let’s encrypt.
¿Como funciona los certificados SSL?
Un certificado SSL es algo así como la tarjeta de identificación de una página web. Hay unas entidades que se llaman CA (Certification Authority) a las que tienes que demostrarle que eres el dueño de ese domino y ellos expiden un certificado SSL para usarlo en la web. Los CA es como la policía española cuando te expide el DNI.
En el proceso participan además los navegadores web que tienen reconocidas unas CA como confiable. De esta manera, cuando accedes a https://blog.miguelangelcorzo.com, la web te muestra un certificado SSL emitido por una CA en la que confía el navegador.
Pongamos un ejemplo del mundo real. La polícía (CA) te expide un DNI (certificado) para que te identifiques ante otros. Cuando vas a realizar una gestión que requiere identificación, el funcionario (usuario de la web) te pide el DNI (certificado). El funcionario comprueba que tu DNI (certificado) está expedido por la policia (CA) y le pregunte a su jefe (navegador web) si admiten documentos emitidos por la policia (CA). En caso afirmativo, comprueba que tu cara coincide con el DNI y te admite el trámite.
Como ejemplo de CA no reconocida podemos tomar el carnet de conducir (certificado) que en algunos sitios no es válido porque el jefe (navegador web) decide que la DGT (CA) no es una autoridad válida y por tanto tu carnet de conducir (certificado) no es válido para identificarte.
¿Porque tienen coste los certificados SSL comerciales?
Mi opinión es que las empresas que expiden certificados SSL justifican sus precios por la infraestructura pública de CA que hay que mantener y por el proceso inicial de validación del usuario que tiene un coste administrativo.
Pero lo cierto es que hoy día la expedición de un certificado SSL está muy automatizado por lo que el coste de expedición es ridiculo. Y por otro lado, creo no existe coste por parte de la CA por mantener el certificado activo. ¿Tiene sentido cobrar 30€ por un certificado común o 150€ por un wildcard? Yo creo que no.
Por tanto, asumiendo que no hay coste de mantenimiento. ¿Y si conseguimos automatizar al 100% el proceso de expedición? Señores y señoras, les presento a Let’s encrypt.
Un certificado SSL gratis, rápido y confiable
Let’s encrypt es una entidad que nace auspiciada por grandes players de internet cuyo objetivo final es promover el uso de HTTPS en las páginas web. Para conseguir su objetivo, «regala» certificados SSL a todo aquel que lo solicite.
El único requisito es que el proceso de expedición tiene que ser automático al 100%. Es decir, tus servidores web (o tu mismo) deben solicitar el certificado y demostrar la titularidad del dominio para el que estas solicitando el certificado en único proceso sin intervención humana.
¿Y como es ese proceso? Pues es jodidamente simple si nos apoyamos en herramientas como cert-bot. Lo he probado en uno de mis servers con Centos6 y Apache y es literalmente ejecutar 2 comandos: Descartar cert-bot y ejecutarlo. Él solo, realiza todo el proceso de solicitud, validación e incluso instalación del certificado en tus servers.
No exagero si te digo que en 1 minuto puedes tener todas tus páginas web protegidas por HTTPs sin esfuerzo y sin coste.
Conclusión
Let’s encrypt es la solución ideal para aquellos que tenemos sitios webs que queremos proteger con HTTPS. Simple, barato y confiable ¿Que más se puede pedir?