I’m using this and it works for me anyway. Home Assistant is running on host 192.168.1.1 at default port 8123. One of the problems why it didn’t work at first was the end slashes. For some reason they’re pretty mandatory(?) Also modules like these are required:
- mod_proxy
- mod_rewrite
- mod_http
- mod_headers
<VirtualHost *:443>
ServerName ha.domain.co
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/domain.co/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain.co/privkey.pem
ProxyPreserveHost On
ProxyRequests Off
ProxyPass /api/websocket ws://192.168.1.1:8123/api/websocket
ProxyPassReverse /api/websocket wss://192.168.1.1:8123/api/websocket
ProxyPass / http://192.168.1.1:8123/
ProxyPassReverse / http://192.168.1.1:8123/
RewriteEngine On
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteRule ^/?(.*) "ws://192.168.1.1:8123/$1" [P,L]
</VirtualHost>