2017-08-08 3 views
0

https://www.hi-todd.com/websocket/Websocket funktionieren nicht mit SSL

Ich habe mit MQTT Protokoll eine Demo erstellt und es funktioniert mit HTTP-Verbindung in Ordnung. Aber als ich versucht habe, HTTP in HTTPS zu ändern, wird ein Verbindungsfehler angezeigt.

Ich habe Zertifikat Pfad hinzugefügt in mosquitto.conf Datei. Lassen Sie mich mit Ihnen Mosquitto Config-Pfad teilen.

# WebSockets over TLS/SSL 
listener 8083 
protocol websockets 
cafile /etc/mosquitto/ca_certificates/ca.crt 
certfile /etc/mosquitto/ca_certificates/hi-todd_com.crt 
keyfile /etc/mosquitto/ca_certificates/hi-todd_com.p7b 

Ich habe unten Bibliotheks-Code verwendet.

https://www.cloudmqtt.com/docs-websocket.html 
+0

Bitte lesen Sie [Unter welchen Umständen kann ich „dringend“ oder andere ähnliche Ausdrücke auf meine Frage hinzufügen, um schneller Antworten zu erhalten?] (// meta.stackoverflow.com/q/326569) - die Zusammenfassung, dass dies ist kein idealer Weg, um Freiwillige anzusprechen, und ist wahrscheinlich kontraproduktiv, um Antworten zu erhalten. Bitte unterlassen Sie das Hinzufügen zu Ihren Fragen. – halfer

+0

Haben Sie eigene Zertifikate generiert oder verwenden Sie eine öffentliche Zertifizierungsstelle für den Broker? Haben Sie auch Port 8083 in was auch immer Firewall auf dem Hosting-Service geöffnet ist, wie ich nicht mit dem Port für die IP-Adresse in 'config.js' – hardillb

+0

@hardillb Ich benutze Public CA verbinden kann. Ja, mein Port ist offen. Ich habe mit http mit dem gleichen Port getestet und es hat gut funktioniert. Zur Zeit habe ich Port geändert und ändern Sie die Bibliothek für Moskitonetze emqtt. https://github.com/emqtt/emqttd/wiki/WebSocket Aber gleiches Problem auch immer in dieser Bibliothek. Arbeite nur in http mit ws. –

Antwort

1

Jetzt haben wir alle anderen Probleme behoben.

Das Zertifikat, das Sie verwenden hat eine CN von hi-todd.com und hat alternativen CNs von

DNS:hi-todd.com, DNS:www.hi-todd.com 

Das bedeutet, es für die Gastgeber nur gültig ist. In Ihrer config.js referenzieren Sie den Host anhand seiner IP-Adresse, so dass er nicht mit dem Zertifikat übereinstimmt. Dies führt dazu, dass der Browser die Verbindung als unsicher abweist.

Um dies zu beheben Ihre config.js die Hostnamen nicht die IP-Adresse verwenden machen.

+0

Vielen Dank für diese Hilfe. –

Verwandte Themen