Hola mundo,
Finalmente y después de tanta espera, Let’s Encrypt ha entrado en fase de Public Beta, es decir ya cualquiera que desee probarlo puede entrar y generar sus certificados.
Para quienes no conozcan que es Let’s Encrypt, es una nueva Autoridad de Certificación, abierta y gratis. Es administrado por la Internet Security Research Group (ISRG), y es patrocinado por las mas importantes Fundaciones de Internet, tales como la EFF, Mozilla, y también por grandes empresas como Cisco, Facebook, Ident Trust, Internet Society, entre otros.
La idea de Let’s Encrypt es que cualquiera tiene derecho de poder ofrecer seguridad a través de la encriptación (HTTPS) en sus sitios web, antes de la llegada de Let’s Encrypt, uno tenía que pagar a una Autoridad de certificación tales como Symantec, GoDaddy, DigiCert, Verizon, etc… cierta cantidad desde unos cientos y hasta los miles de USD dependiendo el nivel de certificación deseada.
Pero para la mayoría de usuarios un certificado de validación de nombre de dominio es mas que suficiente y esto es lo que ofrece Let’s Encrypt, que tus usuarios tengan plena seguridad de que los datos que viajan desde su máquina a tu servidor/sitio no puede ser leída por nadie mas, pues el certificado sólo puede provenir del servidor donde reside el dominio auténtico y no de un suplantador (ó de una agencia de espionaje cofcofNSAcofcof)
Instalación
Primero que nada, todo lo siguiente debes correrlo en el servidor en donde residen los dominios para los que quieres generar los certificados, pues Let’s Encrypt debe poder escribir ciertos archivos en su WebRoot (a.k.a. DocumentRoot) para poder validar efectivamente que eres el dueño del dominio y tienes control sobre él.
Paso 1, Debes tener Git instalado y clonar el depósito:
user@webserver:~$ git clone https://github.com/letsencrypt/letsencrypt.git
Paso 2, Córrelo una vez para que pueda instalar todas sus dependencias (la mayoría bibliotecas en python), por tanto debes tener privilegios de administrador ya sea acceso a root directo o por medio de sudo, posteriormente generará una nueva llave privada y con el email que le especifiques creará una nueva cuenta para ti en los servidores de Let’s Encrypt, todo esto es un proceso automático. NOTA: De momento no le especifiques ningún dominio.
root@webserver:~$ cd letsencrypt
root@webserver:~/letsencrypt$ ./letsencrypt-auto --email tudireccion@deemail.com --agree-tos
Paso 3, Let’s Encrypt tiene plugins para poder leer archivos de configuración de Apache, saber que dominios tienes, donde están y modificar estas configuraciones para añadir los certificados de manera automágica, pero esto es un grave problema para los que tenemos servidores web con algún tipo de panel de control que genera sus propias configuraciones y sobreescribirían los cambios hechos por Let’s Encrypt, otra opción es que dejes a Let’s encrypt levantar un web server standlone, pero esto implica que debes detener tu web server principal.
En mi caso estos 2 primeros métodos no son una opción, así que me fuí por la tercera, puedes darle a Let’s Encrypt el path al DocumentRoot de tu dominio para que realice la validación con unos archivos especiales que debe guardar allí. Aclarado esto, digamos que tienes tus dominios en /var/www/$dominio, por ejemplo /var/www/fulanito.com, correríamos lo siguiente:
root@webserver:~/letsencrypt$ ./letsencrypt-auto certonly --webroot -w /var/www/fulanito.com/ -d fulanito.com
¡Y listo!, generará automáticamente tu CSR (Certificate Signing Request), lo firmará, lo enviará a los servidores de Let’s Encrypt, estos validará que existan los archivos en fulanito.com/.well-known/acme-challenge/ y de ser así devolverá el certificado firmado. Se generarán 4 archivos en /etc/letsencrypt/live/fulanito.com/
root@webserver:~# ls /etc/letsencrypt/live/fulanito.com/
cert.pem chain.pem fullchain.pem privkey.pem
Los cuales contienen:
-
cert.pem
– contiene el certificado firmado -
chain.pem
– certificado “intermedio” -
fullchain.pem
– contiene ambos cert.pem y chain.pem, para los servicios que soporten este formato -
privkey.pem
– la llave privada del certificado
Configurar el webserver (Apache y NginX)
Esto sería lo único a añadir en tu virtualhost de Apache, (si antes no usabas SSL, asegúrate de activar los módulos y habilitar el virtualhost de SSL que contiene las entradas para el puerto 443)
<VirtualHost ww.xx.yy.zz:443>
...
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/fulanito.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/fulanito.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/fulanito.com/chain.pem
...
</VirtualHost>
Y para NginX, algo como lo siguiente:
server {
listen ww.xx.yy.zz:443;
server_name fulanito.com www.fulanito.com;
ssl on;
ssl_certificate /etc/letsencrypt/live/fulanito.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/fulanito.com/privkey.pem;
...
Y eso es todo, espero este artículo les sirva en algo y les ayude a brindar mas seguridad a sus sitios web. Como ven es bastante fácil utilizar Let’s Encrypt.
Sólo resta mencionar que quienes tienen su hosting/cloud server/dedicado con ideaslabs.com pueden solicitar su certificado gratis y se les será configurado casi al instante sin costo alguno ;)
Saludos!
hola, yo quisiera instalar en mi hosting compartido ¿cómo haría para instalarlo?
Saludos
Hola John,
Usarías el modo manual
./letsencrypt-auto certonly -a manual -d example.com
De esta forma el script te pedirá que pongas cierto texto en cierto path dentro de tu webroot, es decir, tendrías que conectarte vía SSH/SCP/sFTP a tu shared hosting, y crear los archivo que te vaya diciendo, y editándolos con el contenido que también te va a indicar.
Una vez finalizado ese proceso Let’s Encrypt checará que estén todos los archivos en tu dominio, y lo validará, terminado esto, puedes borrar los archivos.
Saludos!
que pasa si ya tenia configurado un certificado de godaddy, habría algún conflicto?
Hola !! soy novato pero quiero utilizar let’s encrypt para mi xampp local utilizo windows pero ne como empezar sera que exista la posibilidad de que me ayudes a conseguir configurar mi xampp con let encrypt, porfavor
Simplemente sustituyes el certificado de Godaddy por el que generaste con let’s encrypt
Para desarrollo local no necesitas un certificado firmado. Si lo que quieres es poner un servidor casero, entonces necesitas varias cosas antes de pensar en el certificado, como tener un dominio que apunte a una ip pública en tu home server (dinámica o fija), hay muchos tutoriales en internet sobre como hacer todo eso… ya cuando tengas listo tu homeserver con dominio e ip pública sigues la guía de let’s encrypt normal.
Hola Marcos, tendrias un paso a paso, para entrar al archivo del servidor y modificarlo, lo que dispongo es el acceso a ftp del servidor, existe algun fichero de alli y modificar para que funcione o cargue manualmente el archivo sin usar la consola linux.
Hola Andres,
No, los certificados se manejan con usuario root, si no tienes tu propio server y es shared hosting entonces el proveedor debe darte la opción de editar tus certificados vía su panel de control.
Saludos.
Muy buen info, gracias, para la ultima opción seria ejecutar:
user@webserver:~$ git clone https://github.com/letsencrypt/letsencrypt.git
y luego
root@webserver:~/letsencrypt$ ./letsencrypt-auto certonly –webroot -w /var/www/fulanito.com/ -d fulanito.com
Solo faltaría agregarle a los vhosts las SSL, es correcto?
Otra consulta, se pueden instalar los certificados en un directorio distinto al del dominio?
Gracias
Hola como estas , soy nuevo pero despues que compre un certificado de SSL en Godaddy en WordPress no puedo editar o insertar mas datos en mi pagina ademas no apareces el sello de seguridad
Que hago para resolver este problema de WordPress para poder entrar y modificar mi pagina
También tengo otro dominio lo cual me gustaría utilizar let’s encrypt gratis para el sello de seguridad como hago cual son los pasos
gracias
Hola Claudio,
Así es, tal cual dice el texto, posteriormente realizas la configuración de tu web server con el ssl y llave correspondiente.
Los certificados se guardan en /etc/letsencrypt/live si recuerdo bien (ahora uso otro cliente de letsencrypt). De cualquier manera al terminar de correr el script éste te indica en donde queadaron guardados los certificados y la llave. Los certificados NUNCA se guardan en el mismo lugar que tu espacio público (httdocs, public_html, etc)
Saludos.
Hola Valentín,
De tu wordpress no sé decirte, necesitas buscar un rato en google, lo mas seguro es que tengas que cambiar el site_url en la BD.
Sobre como usar Let’s Encrypt, pues aquí en este post están los pasos. Si estás en un shared hosting necesitas correrlo de manera manual (lee los anteriores comentarios) y seguir las instrucciones que te indique el script.
Saludos!
Hola, uso Xpress Hosting y acabo de crear un certificado desde el cpanel, pero me dice que es un certificado autfirmado, y necesitaria validarlo con una entidad de certificacion valida, en este caso quiero que sea Let’s Encrypt pero no entiendo como puedo hacerlo o si es posible hacerlo. O debo crear los certificados como lo pones en el ejemplo y despues subirlos a mi hosting?
Gracia por el aporte!
Hola tengo un dominio con Godaddy serviría el procedimiento que detallas solo para el dominio o es necesariamente contar con el hosting
1 Fuerte Abrazo.
Hola Angel y Vicente
Deben usar el modo manual:
./letsencrypt-auto certonly -a manual -d example.com
Y siguen las instrucciones… esto lo deberán hacer cada 3 meses… otro modo sería usar el modo DNS, entonces se debe crear el registro que indique (de tipo TXT) con el contenido que también se indica.
Saludos