Añadiendo SSL con letsencrypt en los Virtual Hosts de Apache2, en Ubuntu Server

Cualquiera que haya administrado un sitio web seguro sabe lo tedioso que puede ser obtener y mantener un certificado ssl, sobretodo si se quiere que esté validado por alguna Autoridad Certificadora (CA).

Letsencrypt automatiza este proceso y proporciona un certificado para tu web, para que de una vez puedas activar ssl en tu sitio, sin ver cómo baja drasticamente tu ratio de visitas. Y lo mejor de todo, lo hace gratis! Comentar que letsencrypt es un proyecto opensource patrocinado por la linux foundations, entre otros, y que recién empieza a incluirse en paquetería de varias distribuciones

Pues bien, gracias a letsencrypt, El proceso es muy sencillo: basta con configurar ssl en tu servidor (importante hacerlo a priori), y después descargar y ejecutar la herramienta letsencrypt, y sin mensajes de correo electrónico de validación ni ediciones complicadas, hace el trabajo. Los certificados duran tres meses y después hay que renovarlos, proceso que también es muy sencillo y que cubriremos otro día a modo de apéndice.

1.Activar SSL en Apache2, Ubuntu Linux

Vamos a empezar activando ssl en un virtual host en apache2, en Ubuntu Linux. Nos basaremos en el virtual host tudominio.com que usamos anteriormente.

Copiamos la confi que ya hicimos,

cp /etc/apache2/sites-available/tudominio.com.conf /etc/apache2/sites-available/tudomino.com.ssl.conf

Editamos el archivo recién creado, modificando la primera línea para cambiar el puerto.

<VirtualHost *:443>

Añadimos las lineas relativas a SSL

SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

Cerramos y guardamos.

Si no teníamos activado el módulo ssl para apache, lo activamos

a2enmod ssl

Testeamos que la configuración es correcta:

apachectl configtest

Si el comando anterior ha ido bien, añadimos el sitio al inicio de apache, y reiniciamos el servicio:

a2ensite tudominio.com.ssl.conf
service apache2 restart

Ya podemos acceder a https://www.tudominio.com, pero vemos que da un error de certificado y que hay que hacer cuatro clicks para avanzar, lo que hará que nuestra web pierda muchas pero que muchas visitas

2.Activar LetsEncrypt en Apache2, Ubuntu Linux

Descargamos letsencrypt desde el git (a día de hoy no existe paquetería para ubuntu, para debian sí), y lo ejecutamos.

git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto --help

Se pondrá a descargar un montón de dependencias que necesita, usando la paquetería del sistema (apt-get o yum), y al rato terminará mostrando la ayuda.

Ejecutamos letsencrypt de nuevo, esta vez en modo –apache. Automáticamente leerá las configuraciones de apache, tomará nota de los sites y nos preguntará en cuáles queremos activar ssl, y si queremos forzar que todas las peticiones vayan con ssl al puerto 443. Letsencrypt hará las modificaciones en los ficheros bajo /etc/apache2/sites-available, testeará las configuraciones y reniciará apache, él sólo y con un par…

Y ya podemos acceder a nuestra web por https, tan certificados como si hubieramos pagado 200 Euros por ello 😉

Por cierto, las claves que se están usando se guardan en

SSLCertificateFile      /etc/letsencrypt/live/www.tudominio.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.tudomino.com/privkey.pem

Es interesante hacer una copia de seguridad de las mismas.

Fácil, no?

 

One Comment:

  1. Pingback: Actualizar los certificados ssl de Letsencrypt – Erebor Log

Deja un comentario

Tu dirección de correo electrónico no será publicada.

5 + 9 =