• Home
  • Manuales
  • Configurar SSL en Apache, con certificado válido y gratuito

Configurar SSL en Apache, con certificado válido y gratuito

En esta entrada aprenderás a configurar correcamente SSL en apache, y a conseguir certificados seguros y validados usando una autoridad certificadora como let’s encrypt. Con ello conseguirás sustituir tu inseguro HTTP por HTPPS y cifrar las transmisiones adoptando un protocolo seguro y validado.

Partimos del supuesto de que ya tienes una instalación de apache corriendo y sirviendo páginas en el puerto 80. Usaremos una distribución Ubuntu Server, aunque esto sirve para cualquier distro. Dividiremos la guía en dos partes, primero activar SSL en apache, y luego como conseguir el certificado validado

1. Activar SSL en Apache

Hacemos una copia del fichero del dominio, con el sufijo .ssl

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 y añadiendo las líneas relativas a SSL

<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
----
</VirtualHost

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
ssl en apache

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 visitas. Esto es porque nuestro certificado no está validado por ninguna autoridad certificadora competente. Para un entorno de producción, esto es inaceptable, por lo que en el siguiente paso conseguiremos un certificado válido.

2. Activar LetsEncrypt en Apache

Letsencrypt es una autoridad certificadora gratuita, automatizada y abierta, que permite que cualquiera pueda activar certificados para su sitio. El único requisito es que el dominio nos pertenezca, o tengamos acceso a ciertos directorios y a su configuración. Y, para evitar el abuso, cada tres meses será necesario renovar el certificado.

Descargamos letsencrypt desde git, y lo ejecutamos:

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

Descargará las 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.

./letsencrypt-auto --apache

Automáticamente leerá las configuraciones de apache y tomará nota de los sites. 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 en /etc/apache2/sites-available, las testeará y reniciará apache.

ssl apache

Y ya podemos acceder a nuestra web por https y veremos el tan deseado candado verde y sentiremos el orgullo de estar tan certificados como si hubiéramos pagado 200 Euros. 😉

Si no tienes acceso directo a la configuración de apache pero quieres usar letsencrypt, existen otros mecanismo para hacerlo, consulta aquí en su guía.

Si tienes alguna duda o necesitas ayuda con este u otros temas relacionados con tu servidor web, comenta o contacta con nosotros, desde NSS te ayudaremos encantados.

Espacio para publicidad
[Total:4    Promedio:5/5]

NSS

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *