[問題] 請問關於SSL斷線的問題

作者: pleaselouis (LOUIS￾N)   2016-11-11 17:45:03
開發平台(Platform): (Ex: Win10, Linux, ...)
Win 7
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
VC++ 2015
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
QT 5.6.0 and libwebsocket 1.7.0
問題(Question):
我個別使用了 Qt 跟 libwebsocket 寫了一支Server程式
並使用這兩個Library的 官方範例html程式(用Chrome開啟) 使用SSL模式 去連Server
上述的兩個Server跟兩個Client 不論是如何排列組合
發生的情況都是 立刻顯示斷線訊息 但是如果關閉SSL的話 則是運作正常
但是有一個特殊情形 首先先開啟上述的其中一個Server程式後
並在Chrome開啟一個新分頁 在網址列打入 https://localhost:1234
Chrome會顯示 "您的連線不是私人連線" 的提示網頁
點選 "進階" 再點選 "繼續前往 localhost 網站 (不安全)"
此時Chrome的新分頁顯示 "localhost 頁面無法正常運作"
這時再去開啟上述的任一個Client網頁 就完全正常運作了
但是若是 進去Chrome的 "設定" 再點選 "清除瀏覽資料" 後
一切的情形 就恢復成 一連馬上就斷線的情形
我查了很久 都沒有發現原因 或是解決方法
請問各位前輩 可以給我一點方向或是線索嗎?? 謝謝大家
作者: MOONRAKER (㊣牛鶴鰻毛人)   2016-11-11 18:27:00
當然阿 你以為chrome讓你繼續前往的網頁是安全的嗎他揪出來你SSL憑證不對 繼續進去就是走沒SSL的port 80他記下來這個例外 下次就讓你直接走port 80清掉資料 就走https 於是馬上斷線你的SSL根本從來就沒好過
作者: CodingMan (程式俠)   2016-11-11 20:17:00
Http 預設 port 是 80
作者: uranusjr (←這人是超級笨蛋)   2016-11-12 00:17:00
為什麼要用 libwebsocket, Qt 就有帶 QWebSocket 了啊XD
作者: MOONRAKER (㊣牛鶴鰻毛人)   2016-11-12 04:48:00
你socket聽哪裡跟你網頁怎麼開有什麼關係就算你用port 1234進https page 憑證不對一樣dropback回port 80你問題就是在前端的html page走https必死你可以不用聽 反正福特都說了 沒有做錯事無法學習錯多一點可以學習比較久
作者: uranusjr (←這人是超級笨蛋)   2016-11-12 09:11:00
你的問題是沒搞懂 HTTPS 和 WSS 的運作原理, SSL 模式是用來讓使用者確認伺服器真的是你所宣稱的那個人, 這需要第三方認證才能辦到, 不是你想用就能用的

Links booklink

Contact Us: admin [ a t ] ucptt.com