C_and_CPP 板


LINE

開發平台(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的 "設定" 再點選 "清除瀏覽資料" 後 一切的情形 就恢復成 一連馬上就斷線的情形 我查了很久 都沒有發現原因 或是解決方法 請問各位前輩 可以給我一點方向或是線索嗎?? 謝謝大家 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.34.160.71
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1478857506.A.DAD.html ※ 編輯: pleaselouis (1.34.160.71), 11/11/2016 17:46:28
1F:→ MOONRAKER: 當然阿 你以為chrome讓你繼續前往的網頁是安全的嗎 11/11 18:27
2F:→ MOONRAKER: 他揪出來你SSL憑證不對 繼續進去就是走沒SSL的port 80 11/11 18:28
3F:→ MOONRAKER: 他記下來這個例外 下次就讓你直接走port 80 11/11 18:29
4F:→ MOONRAKER: 清掉資料 就走https 於是馬上斷線 11/11 18:30
5F:→ MOONRAKER: 你的SSL根本從來就沒好過 11/11 18:30
不好意思 再請教一下 我的Server Listen的port是1234 照MOONRAKER先生的說法是 Chrome讓Client走port 80去連我的server 這樣為什麼會正常運作呢?? 麻煩你指導一下 謝謝 ※ 編輯: pleaselouis (180.218.142.121), 11/11/2016 18:55:24
6F:→ CodingMan: Http 預設 port 是 80 11/11 20:17
所以請問是 即使我的Server Listen的是 port 1234 只要是 websocket 就一定會監聽 port 80 嗎?? 麻煩請各位前輩解惑 謝謝 ※ 編輯: pleaselouis (180.218.142.121), 11/11/2016 21:10:03
7F:→ uranusjr: 為什麼要用 libwebsocket, Qt 就有帶 QWebSocket 了啊XD 11/12 00:17
因為其實我是接手別人的Code
8F:→ MOONRAKER: 你socket聽哪裡跟你網頁怎麼開有什麼關係 11/12 04:48
9F:→ MOONRAKER: 就算你用port 1234進https page 憑證不對一樣dropback 11/12 04:49
10F:→ MOONRAKER: 回port 80 11/12 04:49
11F:→ MOONRAKER: 你問題就是在前端的html page走https必死 11/12 04:51
12F:→ MOONRAKER: 你可以不用聽 反正福特都說了 沒有做錯事無法學習 11/12 04:52
13F:→ MOONRAKER: 錯多一點可以學習比較久 11/12 04:52
我不是不聽 我是真的不懂 我對網路這一塊真的是新手 所以有很多疑問 如果MOONRAKER先生願意的話 可不可以多說一點相關知識讓我學習 拜託你幫忙 謝謝你 另外你提到 我的SSL憑證不對 我昨晚有做過以下測試 下面有我建構子的原始碼 原始碼 大部分是參考官方範例 引用自下述網址 http://doc.qt.io/qt-5/qtwebsockets-sslechoserver-sslechoserver-cpp.html --- m_pWebSocketServer = new QWebSocketServer(QStringLiteral("SSL Echo Server"), QWebSocketServer::SecureMode,this); QSslConfiguration sslConfiguration; QFile certFile(QStringLiteral("server.crt")); QFile keyFile(QStringLiteral("server.key")); qDebug()<<"server.crt"<<certFile.exists(); qDebug()<<"server.key"<<keyFile.exists(); //這邊我使用了QFile的exists() 來確認憑證檔案 是否存在 log顯示都為true certFile.open(QIODevice::ReadOnly); keyFile.open(QIODevice::ReadOnly); QSslCertificate certificate(&certFile, QSsl::Pem); std::string strPass = "pass"; //這個憑證檔 是沿用以前的人用過的 所以密碼應該是沒有錯 QByteArray thePwd = QByteArray::fromStdString(strPass); QSslKey sslKey(&keyFile, QSsl::Rsa, QSsl::Pem , QSsl::PrivateKey ,thePwd); //我有去查輸入憑證密碼的文件 應該沒有使用錯誤 請問是我搞錯使用方法嗎? certFile.close(); keyFile.close(); qDebug()<<"sslKey isNUll:"<<sslKey.isNull(); //這邊印出 檢查sslKey是不是NULL 印出結果是 false QList<QSslCertificate> listTest; listTest.push_back(certificate); qDebug()<<"verify:"<<QSslCertificate::verify(listTest , QString("localhost")); /*這段是我測試Code最大的問題 這個API的第2個參數 根據文件要我填host name 文件網址: http://doc.qt.io/qt-5/qsslcertificate.html#verify 請問對於憑證檔來說 他的hostname是什麼?? 我昨晚試了許多字串 感覺都是錯的 因為上面這行不論我使用什麼字串 我印的log 都是如下: "The certificate is self-signed, and untrusted" 上述的文字 google後查到:https://goo.gl/SgQOA4 根據上述文章所述 應該只是此憑證不安全 但應該可以使用?? 煩請了解的前輩 指導一下小弟 是憑證在這邊就已經告知我不能使用了嗎??*/ sslConfiguration.setPeerVerifyMode(QSslSocket::VerifyNone); sslConfiguration.setLocalCertificate(certificate); sslConfiguration.setPrivateKey(sslKey); sslConfiguration.setProtocol(QSsl::TlsV1SslV3); m_pWebSocketServer->setSslConfiguration(sslConfiguration); if (m_pWebSocketServer->listen(QHostAddress::Any, port)) { //下面我連結了 所有我能找到的singal 看是否可以得到一些資訊 //不過都未收到 任何訊息 qDebug() << "SSL Echo Server listening on port" << port; connect(m_pWebSocketServer, &QWebSocketServer::newConnection, this, &TestWebServer::onNewConnection); connect(m_pWebSocketServer, &QWebSocketServer::sslErrors, this, &TestWebServer::onSslErrors); connect(m_pWebSocketServer, &QWebSocketServer::peerVerifyError, this, &TestWebServer::onPeerVerifyError); connect(m_pWebSocketServer, &QWebSocketServer::serverError, this, &TestWebServer::onServerError); connect(m_pWebSocketServer, &QWebSocketServer::acceptError, this, &TestWebServer::onAcceptError); connect(m_pWebSocketServer, &QWebSocketServer::originAuthenticationRequired, this, &TestWebServer::onOriginAuthenticationRequired); connect(m_pWebSocketServer, &QWebSocketServer::closed, this, &TestWebServer::onClosed); } --- 再次拜託版上各位前輩 可以給小弟指導 小弟是真的不懂 謝謝大家 ※ 編輯: pleaselouis (180.218.142.121), 11/12/2016 08:08:58
14F:→ uranusjr: 你的問題是沒搞懂 HTTPS 和 WSS 的運作原理, SSL 模式是 11/12 09:11
15F:→ uranusjr: 用來讓使用者確認伺服器真的是你所宣稱的那個人, 這需要 11/12 09:12
16F:→ uranusjr: 第三方認證才能辦到, 不是你想用就能用的 11/12 09:12
感謝連日以來 各位前輩的教導 我已經上網閱讀了SSL的基礎文件 http://www.study-area.org/tips/certs-v2-20020914/certs.html 終於了解 原來是我的 憑證並未加入到我local端的信任清單中 當然也沒有 加入第三方受信任的認證清單中 後來去翻前人的Code 才知道原來之前是使用憑證管理工具 來作憑證的安裝與反安裝 https://msdn.microsoft.com/zh-tw/library/e78byta0(v=vs.90).aspx 謝謝大家的指導 ※ 編輯: pleaselouis (1.34.160.71), 11/14/2016 11:19:26







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:e-shopping站內搜尋

TOP