fix(S2-a): expose scoped app MQTT through WSS
This commit is contained in:
@@ -14,10 +14,12 @@ exposes three listeners, each with a different trust model:
|
||||
|------|----------|------|---------------|
|
||||
| `1883` | MQTT (plaintext) | username/password | internal services (e.g. the Laravel subscriber, Python publisher) |
|
||||
| `8883` | MQTT over TLS | **client certificate** | field devices |
|
||||
| `8884` | MQTT over TLS | username/password (server cert only) | scoped app clients and administrators |
|
||||
| `443` (`/mqtt` → loopback `9001`) | MQTT over WSS/TLS | username/password | scoped app clients |
|
||||
| `8884` | MQTT over TLS | username/password (server cert only) | scoped app clients and administrators on networks that expose the raw port |
|
||||
|
||||
The former anonymous WebSocket listener on `9001` is disabled. The current web portal receives
|
||||
live updates from the backend rather than connecting directly to Mosquitto.
|
||||
The former anonymous WebSocket listener on `9001` is now authenticated, uses the same ACL as the
|
||||
TLS listeners, and is bound to host loopback only. Nginx exposes it as WSS at `/mqtt` on port 443;
|
||||
the web portal itself continues to receive live updates from the backend.
|
||||
|
||||
The TLS listeners use `mosquitto/certs/public-fullchain.pem` and
|
||||
`mosquitto/certs/public-privkey.pem`, copied from the host's Let's Encrypt certificate during
|
||||
|
||||
Reference in New Issue
Block a user