2017-08-08 43 views
0

https://www.hi-todd.com/websocket/的WebSocket不與SSL

我已創建了一個演示使用MQTT協議,它工作正常使用HTTP連接工作。但是當我嘗試將HTTP更改爲https時,它正在接收連接錯誤。

我在mosquitto.conf文件中添加了證書路徑。讓我與你分享Mosquitto配置路徑。

# 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 

我已經使用了下面的庫代碼。

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

請閱讀[在什麼情況下,我可以添加「緊急」或其他類似的短語到我的問題,以獲得更快的答案?](/ meta.stackoverflow.com/q/326569) - 摘要是,這不是解決志願者問題的理想方式,而且可能對獲得答案起反作用。請不要將這添加到您的問題。 – halfer

+0

您是否生成自己的證書或正在使用經紀人的公共CA?還有,你在主機服務器上的防火牆上打開了端口8083,因爲我無法連接到'config.js'中的IP地址端口。 – hardillb

+0

@hardillb我正在使用公共CA. 是的,我的港口是開放的。我已經測試與同一端口的http,它工作正常。 目前我已經改變了蚊子websocket emqtt的端口和更改庫。 https://github.com/emqtt/emqttd/wiki/WebSocket 但在這個庫中也有同樣的問題。僅在ws中使用http工作。 –

回答

1

現在我們已經解決了所有其他問題。

您正在使用的證書有hi-todd.com一個CN並具有

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

這意味着它僅適用於那些主機備用的CN。在您的config.js中,您通過IP地址引用主機,因此它不會與證書匹配。這將導致瀏覽器拒絕連接爲不安全。

要解決這個問題,您的config.js使用主機名而不是IP地址。

+0

非常感謝爲此提供幫助。 –