I’d like to propose a feature that brings native SSL/TLS support directly into the Home Assistant Core, including a built-in mechanism for generating and managing self-signed certificates.
Problem
Currently, to secure Home Assistant with HTTPS, users must rely on:
A reverse proxy setup (e.g., Nginx, Caddy)
External services like Let’s Encrypt, which require DNS access and internet exposure
Manual import of custom certificates
This introduces significant complexity and a steep learning curve, especially for users who:
Want secure access only within their local network
Rely on VPNs, Tailscale, or internal-only deployments
Are privacy-conscious and prefer not to expose Home Assistant to the public internet
Proposed Solution
Add native HTTPS support, allowing users to enable encryption without external proxies, and generate valid (albeit self-signed) certificates directly from the Home Assistant instance.
Key features:
Option to enable HTTPS directly in configuration.yaml:
I’m in the same boat, I have no interest in exposing my network to the internet. I prefer to maintain a VPN connection when away from home. I am just now starting to deal with issues where I can’t use a addon properly because it’s integration into home assistant requires https to play well in an iframe using a webpage dashboard. Can someone point me in the direction of what I need to do to get my self signed certificate setup and switched over to https please
Sorry, I use docker not addons
I see addons available but not in HACS.
Also. It uses letsencrypt to generate certs which generally wants an open port. There are caddy modules (like cloudflare)that allow cert creation without opening ports. This is what I use
Ok, so I have haos on my pi running the letsencrypt addon. It has successfully generated a cert for my domain name that I have registered using the DNS API method. I wanted to use my domain name for internal resolution instead of IP addresses. I have my local dns servers configured to point to the static IP of my ha server. This works fine when I tailscale into my network remotely but still does not work for https. What could I be missing? Does the letsencrypt addon put the cert in play on ha or do I need to do that myself in yaml somewhere? When I do a port scan of ha it shows 443 is listening but when trying to connect it just hangs waiting for a response.
Ok, my fault for overlooking that I need to put the SSL paths in configuration.yaml. Everything seems to be resolving internally using the cert now. Thx for the help. Sometimes it just takes a little nudge to reread everything lol