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/cn.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灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP