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)
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 grabarCtrl+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.