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
- Necesita un nombre de dominio (DN) (por ejemplo, hotspot.hotel-mayer.de)
- 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 - Si usa su USG en un escenario de doble NAT, debe asegurarse de que HTTP y HTTPS estén redirigidos al USG
- Debe saber cómo usar NAT de manera adecuada
- Necesita una Raspberry Pi y una tarjeta SD para el sistema operativo
- Un PC con Tera Term o Putty y WinSCP instalados
- Debe saber cómo usar el terminal SSH en el USG
- 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: raspberryRecomendació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 --yesUna vez hecho esto, podemos instalar el servidor Apache
sudo apt install apache2 --yesDespué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.
Ahora es momento de reiniciar la Pi:
shutdown -rMientras 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 --yes3.2 Generar el primer certificado
Ahora generaremos el primer certificado:
sudo certbot --apacheDebe completar el formulario adecuadamente. Se le preguntará si desea redirigirlo permanentemente.
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.pemDebe 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.
Para obtener el certificado desde la Pi, necesitamos cambiar los permisos de acceso para el archivo myusg_[fecha].p12.
sudo chmod 777 myusg[fecha].p12Ahora 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]/
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> writeAhora la redirección se verá así:
https://[su_dominio]/redirect.cgi?arip=[su_dominio]&original_url=http://[su_dominio]/
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 renewEsto 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.

Comentarios
0 comentariosInicie sesión para dejar un comentario.