This. Use Zero Trust Access Policies to restrict who can even get to HA in the first place. Also, with Tunnels, you don’t need the added risk of opening up ports to the world or worrying about certificates; just run cloudflared (not a typo) at home. This does require a domain and that domain to be added in Cloudflare, though.
To access you’ll have to get a code via email (or SAML, if you’ve got an auth source and the patience to set up, but it makes sign in easy going forward with password autofill), and it works just fine with the app remotely. Or certificates, as mentioned. Only after being authenticated to Cloudflare can someone access HA (or anything else you want to access remotely).
I’ve been able to run numerous services this way without opening a port or seeing a single bad login that wasn’t me for years.
Edit: Made the auth process more clear.