• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[GELOEST] Umstellung auf https -> js script läuft nicht mehr

Mein Browser (Opera) spuckt da aus:
Mixed Content: The page at 'https://becker8.de/' was loaded over HTTPS, but attempted to connect to the insecure WebSocket endpoint 'ws://becker8.de:63709/mqtt'. This request has been blocked; this endpoint must be available over WSS.
Das ist ein gängiges Problem, auch beim Einbinden von Jascript: Wenn eine Seite über https geladen wird, müssen auch externe Ressourcen über eine sichere Verbindung geladen werden. In dem Fall wäre das wss aber ich weiß nicht ob dein Broker das unterstützt. Sollte aber leicht auszutesten sein.
 
ich habe es geschafft Mosquitto mit den let´s encrypt Zertifikaten zum laufen zu kriegen als "wss" - kann es aber leider nicht testen, da MQTT Explorer es nicht unterstützt und ich in meinem Code:
Code:
client = new Paho.MQTT.Client("becker8.de", Number(63709), clientId);
kein wss hin kriege, habe verschiedene Tipps befolgt, aber kriege nur Fehlermeldungen.

Jemand eine Idee wie ich a) meine eigene wss Verbindung testen kann und
b) wie man in Paho "wss" korrekt einbindet ?

Habe wss erfolgreich getestet, bleibt Frage b)

Laut:
https://pi3g.com/de/correct-way-to-instantiate-paho-client-in-javascript-for-wss-secure-websocket/

mqtt = new Paho.Client("wss://key:[email protected]/mqtt", "clientid");

ich habe aber kein Key und kein secret ?
 
Zuletzt bearbeitet:
ich habe es geschafft:

Code:
<script src="https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.min.js"></script>
<script>
const clientId = 'Browser_' + Math.random().toString(16).substr(2, 8);
client = new Paho.MQTT.Client("url.de", Number(1234), clientId);
client.onConnectionLost = onConnectionLost;
client.onMessageArrived = onMessageArrived;
client.connect({
onSuccess: onConnect,
useSSL: true
});
...

Das einzige was nötig war, war:
useSSL: true

Habe ich nur hier gefunden: https://www.hivemq.com/article/mqtt-client-library-encyclopedia-paho-js/

Was ich jetzt noch einbinden muss ist:

Die let´s encrypt Zertifikate liegen geschützt in /etc/letsencrypt/live - da kommt mosquitto nicht ran.
habe sie manuell raus kopiert und in /etc/mosquitto/certs mit 0755 gelegt.

das script soll das automatisch machen mit den passenden Rechten, wenn sie erneuert werden.

Sehe ich das richtig, dass ich dort bloß meine Domain anpassen muss und wieder 0755 ?
 
Zuletzt bearbeitet:
Zurück
Oben