En este momento estás viendo SSL en tu web y gratis

SSL en tu web y gratis

  • Última modificación de la entrada:25 de julio de 2022
  • Tiempo de lectura:8 minutos de lectura
  • Categoría de la entrada:Blog / Web

Si tienes una web en un servidor dedicado o un VPS y puedes acceder a través de ssh, esta es tu entrada.

Se trata de tener un certificado SSL gratuito de Let’s Encrypt y para eso lo primero es instalar certbot:

$ sudo apt install certbot

Para instalar el certificado de Let’s Encrypt ejecutamos:

$ sudo certbot certonly --manual --preferred-challenges dns -d subdominio.dominio.com --server https://acme-v02.api.letsencrypt.org/directory

El comando te irá haciendo varias preguntas:

Enter email address (used for urgent renewal and security notices: Aquí pones tu email

You must agree in order to register with the ACME server. Do you agree: y

Al final te dice que copies lo siguiente en un registro TXT en la Zona DNS de tu dominio:
Please deploy a DNS TXT record under the name
_acme-challenge.xxx.pilab.es with the following value:

aBeS7MV98yq12T7ViOecdLxR-oKaPCHu41fAF-yJ81g (el código será otro, obviamente)

Before continuing, verify the record is deployed.

Press Enter to Continue

Y se quedará esperando (dejalo así y la terminal abierta)…

En el navegador de internet vamos a la Zona Dns de tu dominio (para nosotros ovh)

En OVH > WeCloud > Dominios > tu dominio (o subdominio) > Añadir Registro > TXT

Tienes que poner en la caja de texto subdominio:

_acme-challenge.xxx como se ve en la captura.

y en Valor:

aBeS7MV98yq12T7ViOecdLxR-oKaPCHu41fAF-yJ81g que es el código que nos ha dado en la terminal.

>> Siguiente >> Aceptar

Volvemos a la terminal que dejamos abierta, esperando con: Press Enter to Continue

Y le damos a la tecla ENTER….

Si nos contesta Congratulations, ya está, ya tenemos las claves del certificado en la carpeta de letsencrypt, para ver su contenido en la terminal pondremos:

$ sudo ls -la /etc/letsencrypt/live/

ahí veremos nuestro subdominio y con:

$ sudo ls -la /etc/letsencrypt/live/xxx.pilab.es

veremos las claves del certificado, de las cuales las que vamos a usar son:

fullchain.pem
privkey.pem

Es decir la ruta para acceder a las claves sería:

/etc/letsencrypt/live/xxx.pilab.es/fullchain.pem
/etc/letsencrypt/live/xxx.pilab.es/privkey.pem

Suponemos que ya tenemos instalado el servidor web Apache2 >> Ver Entrada
Entramos en el archivo de configuración de apache2 de nuestro subdominio
si no existe lo creamos, copiando el archivo por defecto (es una plantilla) 000-default.conf

$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/xxx.pilab.es.conf

lo abrimos con nuestro editor favorito:

$ sudo nano /etc/apache2/sites-available/xxx.pilab.es.conf

descomentamos la linea:

ServerName www.example.com (le quitamos el #)

y la cambiamos por ServerName xxx.pilab.es

y añadimos la linea de redirección al subdominio seguro:

Redirect permanent / https://xxx.pilab.es

Ctrl+o Enter para grabar y Ctrl+x para salir.

Creamos el archivo de configuración para el dominio seguro copiandolo de la plantilla

$ sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/xxx.pilab.es-ssl.conf

lo editamos

$ sudo nano /etc/apache2/sites-available/xxx.pilab.es-ssl.conf

Sustituimos

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

por las rutas de las claves del certificado de Let’s Encrypt

SSLCertificateFile /etc/letsencrypt/live/xxx.pilab.es/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/xxx.pilab.es/privkey.pem

Ctrl+o Enter para grabar
Ctrl+x para salir.

Comprobamos la configuración del servidor web apache:

$ sudo apachectl configtest

Activamos el Virtual Host y el SSL:

$ sudo a2ensite xxx.pilab.es.conf

$ sudo a2ensite xxx.pilab.es-ssl.conf

Enabling site xxx.pilab.es-ssl.
To activate the new configuration, you need to run:
systemctl reload apache2

Reiniciamos Apache2:

$ sudo systemctl reload apache2

Y en nuestro navegador favorito a la izquierda de la dirección de nuestro subdominio podremos ver:

El candado y el https:// que demuestran que estamos en una página segura.