Importar un certificado Lets Encrypt al USG

En este artículo de la base de conocimientos, me gustaría mostrarle cómo puede usar una Raspberry Pi para instalar un certificado Let’s Encrypt en su USG.

Introducción

Usaremos un servidor Apache y el complemento Let’s Encrypt para Apache que se ejecuta en una Raspberry Pi para descargar un certificado para un nombre de dominio específico. También usaremos la Pi para actualizar este certificado.

Exportaremos el certificado desde la Pi y lo importaremos al USG.

¿Para qué sirve un certificado?

Con el certificado, se eliminarán las advertencias de seguridad en su navegador. Por ejemplo, para HotSpot o SSL VPN.

Requisitos

  1. Necesita un nombre de dominio (DN) (por ejemplo, hotspot.hotel-mayer.de)
  2. Si no tiene una IP estática, también debe asegurarse de que su DN se mantenga actualizado,
    puede usar la opción DDNS de su USG: Configuración > Red > DDNS
  3. Si usa su USG en un escenario de doble NAT, debe asegurarse de que HTTP y HTTPS estén redirigidos al USG
  4. Debe saber cómo usar NAT de manera adecuada
  5. Necesita una Raspberry Pi y una tarjeta SD para el sistema operativo
  6. Un PC con Tera Term o Putty y WinSCP instalados
  7. Debe saber cómo usar el terminal SSH en el USG
  8. El USG debe tener al menos la versión de firmware 4.30

1. Configurar la Pi y Apache 

En este escenario, solo necesitamos un sistema operativo basado en línea de comandos para la Pi (Raspbian Stretch Lite)
por favor descárguelo desde el sitio web de Raspberry Pi e instálelo como se describe en la documentación.

https://www.raspberrypi.org/downloads/raspbian/
https://www.raspberrypi.org/documentation/installation/installing-images/README.md
 

1.1 Habilitar SSH y cambiar la contraseña

Ahora necesita habilitar SSH. Para ello, inserte la tarjeta SD en su computadora y coloque un archivo vacío llamado “SSH” en la carpeta raíz de la tarjeta SD.

Una vez completada la instalación, conecte la Pi a su red, enciéndala y verifique si puede acceder a ella vía SSH (por ejemplo, con Putty o Tera Term)

Usuario: pi
Contraseña: raspberry

Recomendación 1: cambie la contraseña como se describe aquí:
https://www.raspberrypi.org/documentation/configuration/raspi-config.md

Recomendación 2: Asegúrese de que la Pi siempre obtenga la misma IP

1.2 Actualizar la Pi e instalar el servidor Apache

Ahora podemos buscar e instalar actualizaciones

sudo apt update && sudo apt upgrade --yes

Una vez hecho esto, podemos instalar el servidor Apache

sudo apt install apache2 --yes

Después de que la instalación haya terminado, debería poder ver la página web predeterminada de Apache navegando a la IP de la Raspberry.

mceclip0.png

Ahora es momento de reiniciar la Pi:

shutdown -r

Mientras tanto, configuraremos el reenvío de puertos (temporal) hacia la Pi.

2. Reenvío de puertos

Para tener los puertos 80 y 443 abiertos a Internet. A continuación encontrará cómo realizar los pasos necesarios

2.1 Cambiar el puerto HTTPS del USG a, por ejemplo, 8443
Ahora puede acceder al USG así: https://192.168.1.1:8443

2.2 Configurar el reenvío de puertos para HTTP y HTTPS
Por favor, verifique si puede acceder a la página de prueba de su Pi desde Internet

3. Crear y exportar un certificado

Antes de poder obtener un certificado Let's Encrypt, debemos instalar el complemento Let’s Encrypt para Apache. Esto ayudará a certificar su nombre de dominio.

sudo apt install certbot python-certbot-apache --yes

3.2 Generar el primer certificado

Ahora generaremos el primer certificado:

sudo certbot --apache

Debe completar el formulario adecuadamente. Se le preguntará si desea redirigirlo permanentemente.

mceclip1.png

 mceclip2.png

El certificado será solicitado e instalado automáticamente en el servidor Apache.

3.3 Exportar el certificado descargando el certificado

Ahora puede exportar el certificado con una marca de tiempo.

sudo openssl pkcs12 -export -out /tmp/myusg_"$(date +"%Y-%m-%d")".p12 -inkey /etc/letsencrypt/live/[su_dominio]/privkey.pem -in /etc/letsencrypt/live/[su_dominio]/cert.pem

Debe ingresar una contraseña. Por favor, asegúrese de recordar la contraseña, ya que también la necesitará para la importación al USG.

mceclip3.png

Para obtener el certificado desde la Pi, necesitamos cambiar los permisos de acceso para el archivo myusg_[fecha].p12.

sudo chmod 777 myusg[fecha].p12

Ahora puede obtener el archivo con WinSCP desde la carpeta /tmp.

4. Importar el certificado al USG

4.1 Descargar e importar los certificados raíz e intermedios de Let's Encrypt 

Para que el USG confíe en el certificado que exportamos antes, debemos importar los certificados raíz e intermedios de Let's Encrypt:

https://letsencrypt.org/certificates/

Asegúrese de que los certificados estén guardados como archivo pem (por ejemplo letsencryptauthorityx3.pem).

Ahora en el USG, vaya a Configuración > Objetos > Certificados > Certificados confiables e importe los certificados raíz e intermedios.

4.2 Importar y activar su certificado

En el USG vaya a Configuración > Objetos > Certificados > Mis certificados e importe el certificado (También debe ingresar la contraseña)

Vaya a Configuración > Sistema > WWW bajo Certificado del servidor ahora puede elegir su certificado importado.

5. Configurar correctamente la redirección de HTTP a HTTPS

5.1 Desactivar el NAT para la Pi

Para liberar nuevamente los puertos 80 y 443 para el USG, debe desactivar el NAT para la Pi. Vaya a Configuración > Red > NAT y busque y desactive las reglas responsables del NAT. Por favor, no elimine las reglas, porque las necesitará nuevamente más adelante.

5.2 Establecer el puerto HTTPS del USG de nuevo a 443 y configurar la redirección de HTTP a HTTPS

Vaya a Configuración > Sistema > WWW y configure el puerto HTTPS nuevamente a 443. Asegúrese de que la redirección HTTP esté habilitada.

5.3 Eliminar la dirección IP

Ahora el USG usará el certificado importado. El "problema" que queda es que el USG redirigirá el HTTP a HTTPS así:

https://192.168.1.1/redirect.cgi?arip=[su_dyndns]&original_url=http://[su_dyndns]/

mceclip4.png

Esto, por supuesto, creará un problema con el certificado. Para finalmente deshacerse de este mensaje, debe abrir una sesión SSH a su USG y escribir estos comandos:

Router> configure terminal
Router(config)# web-auth redirect-fqdn [su_nombre_de_dominio]
Router(config)# write
Router(config)# exit
Router> write

Ahora la redirección se verá así:

https://[su_dominio]/redirect.cgi?arip=[su_dominio]&original_url=http://[su_dominio]/

mceclip5.png

 Felicidades, ahora tiene un certificado Let's Encrypt funcionando en su USG.

Renovar el certificado

Los certificados Let's Encrypt son válidos por 90 días. Esto significa que debe renovar el certificado cada tres meses. 

1. Abrir nuevamente los puertos HTTP y HTTPS hacia la Pi

a) Cambiar nuevamente los puertos HTTPS del USG (Punto 2.1)
b) Reactivar el NAT para HTTP/HTTPS para la Pi (Punto 2.2)

2. SSH a la Pi y renovar el certificado

Abra una sesión SSH a su Pi y escriba este comando

sudo certbot renew

Esto renovará el certificado por otros 90 días

3. Exportar e importar el certificado

Ahora debe seguir los pasos en el punto 3.3

4. Actualizar el certificado en el USG 

Ahora continúe con el paso 4.2

5. Cambiar los puertos de nuevo

Siga los pasos en 5.1 y 5.2

Felicidades, ahora ha renovado el certificado Let's Encrypt en su USG.

Aviso legal: Por favor, entienda que esto es solo una descripción de cómo tener un certificado Let's Encrypt en su USG. Si algo está mal con la Raspberry Pi, por favor comprenda que no podemos brindarle soporte respecto a cualquier problema con la Pi.

Artículos en esta sección

¿Fue útil este artículo?
Usuarios a los que les pareció útil: 0 de 3
Compartir

Comentarios

0 comentarios

Inicie sesión para dejar un comentario.