Одолел я, хвала аллаху, этого монстра… Если кому интересно - прикладываю патч, который позволяет делать именно то, про что я спрашивал: устраивать внешний reverse proxy с SSL и аутентификацией для доступа из интернета к WB во внутренней сети.
Идея в том, что теперь, в зависимости от того, по какому протоколу (http/https) открыта страница homeui, подключение идёт через ws или через wss. И плюс к этому стало допустимо оставлять в настройках поле port/порт пустым. В этом случае подключение по websockets устанавливается с тем же портом, что и основная страница (что позволяет использовать https-сессию с той же авторизацией).
Конфигурация reverse proxy получается простейшая. Для apache она будет, в общих чертах, выглядеть так:
<VirtualHost _default_:4443>
SSLEngine on
ProxyPreserveHost On
ProxyPass /mqtt ws://ip.internal.srv:18883
ProxyPassReverse /mqtt ws://ip.internal.srv:18883
ProxyPass / http://ip.internal.srv:80/
ProxyPassReverse / http://ip.internal.srv:80/
ServerName ip.external.srv
<Proxy *>
Order deny,allow
Allow from all
Authtype Basic
Authname "Password Required"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Proxy>
<VirtualHost _default_:4443>
это в предположении, что apache слушает на порту 4443 вашего сервера ip.external.srv, который одним концом смотрит в интернет, а другим - во внутреннюю сеть, где по адресу ip.internal.srv доступен WirenBoard
homeui.patch (3.6 КБ)