teeko Skrevet 9. august 2020 Skrevet 9. august 2020 (endret) Noen MQTT-klienter benytter som kjent ikke brukernavn og password, men autentiserer seg kryptografisk basert på sertifikat. I disse tilfellene kan det være nyttig å benytte identiteten i klientsertifikatet som brukernavn i Mosquitto som vist i diverse guider på nettet. Mosquitto støtter dette gjennom å sette "use_identity_as_username true" i mosquitto.conf. Siden mosquitto.conf ikke er direkte tilgjenglig for justeringer når Mosquitto kjøres som "add-on" under HassOS prøvde jeg å sette "use_identity_as_username: true" via brukergrensesnittet. Opsjonen satt via brukergrensesnittet hadde tilsynelatende ingen effekt, og resulterte i følgende oppføring i systemloggen til Home Assistant: "WARNING (MainThread) [supervisor.addons.validate] Unknown options use_identity_as_username" Noen som kjenner til en smidig måte å sette "use_identity_as_username true" når Mosquitte kjører som "add-on" under HassOS? Endret 9. august 2020 av teeko Siter
stigvi Skrevet 9. august 2020 Skrevet 9. august 2020 Hva med denne: Option: customize.folder The folder to read the additional configuration files (*.conf) from. 1 Siter
teeko Skrevet 9. august 2020 Forfatter Skrevet 9. august 2020 (endret) Ja, godt tenkt. Prøvde å opprette en fil test.conf med linjen "use_identity_as_username true" i customization-katalogen /share/mosquitto mosquitto $ pwd /share/mosquitto mosquitto $ ls accesscontrollist acl.conf test.conf mosquitto $ cat test.conf use_identity_as_username true mosquitto $ Og test.conf leses inn under oppstart at Mosquitto-addon [10:44:12] INFO: Setup mosquitto configuration [10:44:12] INFO: Found local users inside config [10:44:12] INFO: Initialize Hass.io Add-on services [10:44:12] INFO: Initialize Home Assistant discovery [10:44:12] INFO: Start Mosquitto daemon 1596962652: Loading config file /share/mosquitto/acl.conf 1596962652: Loading config file /share/mosquitto/test.conf 1596962652: mosquitto version 1.6.3 starting 1596962652: Config loaded from /etc/mosquitto.conf. 1596962652: Loading plugin: /usr/share/mosquitto/auth-plug.so 1596962652: |-- *** auth-plug: startup 1596962652: ├── Username/password checking enabled. 1596962652: ├── TLS-PSK checking enabled. 1596962652: └── Extended authentication not enabled. 1596962652: Opening ipv4 listen socket on port 1883. 1596962652: Opening ipv6 listen socket on port 1883. 1596962652: Opening websockets listen socket on port 1884. 1596962652: Opening ipv4 listen socket on port 8883. 1596962652: Opening ipv6 listen socket on port 8883. 1596962652: Opening websockets listen socket on port 8884. 1596962652: Opening ipv4 listen socket on port 1883. 1596962652: Error: Address in use ...men det ser ut som det blir en kollisjon mot slutten Uten test.conf ser det slik ut: [11:10:36] INFO: Setup mosquitto configuration [11:10:36] INFO: Found local users inside config [11:10:36] INFO: Initialize Hass.io Add-on services [11:10:36] INFO: Initialize Home Assistant discovery [11:10:36] INFO: Start Mosquitto daemon 1596964236: Loading config file /share/mosquitto/acl.conf 1596964236: mosquitto version 1.6.3 starting 1596964236: Config loaded from /etc/mosquitto.conf. 1596964236: Loading plugin: /usr/share/mosquitto/auth-plug.so 1596964236: |-- *** auth-plug: startup 1596964236: ├── Username/password checking enabled. 1596964236: ├── TLS-PSK checking enabled. 1596964236: └── Extended authentication not enabled. 1596964236: Opening ipv4 listen socket on port 1883. 1596964236: Opening ipv6 listen socket on port 1883. 1596964236: Opening websockets listen socket on port 1884. 1596964236: Opening ipv4 listen socket on port 8883. 1596964236: Opening ipv6 listen socket on port 8883. 1596964236: Opening websockets listen socket on port 8884. 1596964236: Warning: Mosquitto should not be run as root/administrator. ...og fungerer ellers som det skal :-) Endret 9. august 2020 av teeko Siter
teeko Skrevet 9. august 2020 Forfatter Skrevet 9. august 2020 (endret) Siden konfigurasjonsfilene leses i alfabetisk rekkefølge prøvde jeg å døpe om test.conf til a.conf. Da ble den lest før acl.conf som antatt, men feilmeldingen til slutt var den samme. Det er fristende å prøve å editere mosquitto.conf i Docker-kontaineren, men det hadde vært artig å få dette til på en måte som gjorde at Home Assistant fungerer "supervised". Endret 9. august 2020 av teeko Siter
teeko Skrevet 9. august 2020 Forfatter Skrevet 9. august 2020 (endret) OK - use_identity_as_username fungerer hos meg nå etter litt triksing 1. Slå av SSL-støtten som settes opp gjennom brukergrensesnittet til Mosquitto add-on. Dette gjøres ved å spesifisere sertifikatfiler som ikke eksisterer: logins: - username: elwiz password: hemmelig_passord anonymous: false customize: active: true folder: mosquitto certfile: no_such_file_server.crt keyfile: no_such_file_server.key require_certificate: true cafile: no_such_file_ca.crt 2. Lag en alternativ konfig for SSL-støtte Ved å gjøre dette utenfor brukergrensesnittet fungerer use_identity_as_username mosquitto $ pwd /root/share/mosquitto mosquitto $ ls accesscontrollist acl.conf alt_ssl.conf mosquitto $ cat alt_ssl.conf listener 8883 protocol mqtt cafile /ssl/ca.crt certfile /ssl/server.crt keyfile /ssl/server.key require_certificate true use_identity_as_username true mosquitto $ 3. Sett opp tilgang for aktuelle brukere. Det ikke behov for å legge til brukernavn og passord, da autentisering gjøres gjennom sertifikatet Eksempel: "tibber" under er en identitet hentet fra CN i klientsertifikatet (self-signed) jeg benytter for Tibber Pulse. mosquitto $ cat accesscontrollist user homeassistant topic # user tibber topic write tibber topic read tabber user elwiz topic read tibber topic write tabber That's it... Slik ser det ut ved oppstart: [20:09:46] INFO: Setup mosquitto configuration [20:09:46] WARNING: SSL not enabled - No valid certs found! [20:09:46] INFO: Found local users inside config [20:09:46] INFO: Initialize Hass.io Add-on services [20:09:46] INFO: Initialize Home Assistant discovery [20:09:46] INFO: Start Mosquitto daemon 1596996586: Loading config file /share/mosquitto/acl.conf 1596996586: Loading config file /share/mosquitto/alt_ssl.conf 1596996586: mosquitto version 1.6.3 starting 1596996586: Config loaded from /etc/mosquitto.conf. 1596996586: Loading plugin: /usr/share/mosquitto/auth-plug.so 1596996586: |-- *** auth-plug: startup 1596996586: ├── Username/password checking enabled. 1596996586: ├── TLS-PSK checking enabled. 1596996586: └── Extended authentication not enabled. 1596996586: Opening ipv4 listen socket on port 8883. 1596996586: Opening ipv6 listen socket on port 8883. 1596996586: Opening ipv4 listen socket on port 1883. 1596996586: Opening ipv6 listen socket on port 1883. 1596996586: Opening websockets listen socket on port 1884. 1596996586: Warning: Mosquitto should not be run as root/administrator. Endelig kunne jeg slå av anonymous tilgang igjen.... Endret 9. august 2020 av teeko Siter
Anbefalte innlegg
Bli med i samtalen
Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.