Certificado autofirmado en toda la casa: una regla de NAT de MikroTik sin interfaz de entrada
Desde casa, webs como Spotify daban error de certificado autofirmado y Firefox ni dejaba añadir una excepción. Desde fuera iban bien. La culpa era una regla de NAT del router demasiado amplia.
- MikroTik
- Traefik
Síntoma
Cualquier web con HSTS fallaba desde la red de casa con MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT. Con HSTS el navegador no ofrece «continuar de todos modos», así que simplemente no se podía entrar.
Desde los datos del móvil, las mismas webs iban perfectamente.
Causa
En el MikroTik hay una regla dstnat que reenvía el puerto 443 al proxy inverso (Traefik) para publicar las webs de casa. Estaba definida con dst-address-type=local y nada más.
Sin la condición de que el tráfico entre por la WAN, la regla atrapaba también conexiones de dentro de casa que pasaban por la IP del router. Traefik respondía con su certificado interno, y el navegador lo veía como autofirmado.
Cómo detectarlo
- /ip firewall nat print → buscar una regla dstnat al 443 sin in-interface-list.
- curl -v https://<una web con HSTS> desde dentro → el certificado no es el de esa web, sino el del proxy.
Arreglo
Acotar la regla al tráfico que entra por la WAN y vaciar las conexiones abiertas, para que se rehagan con la regla nueva:
/ip firewall nat set [find comment="HTTPS"] in-interface-list=WAN
/ip firewall connection remove [find]