創(chuàng)建的wss服務(wù),報(bào)這個(gè)錯(cuò)誤,中間有個(gè)代理服務(wù)器。不知道是哪里出了問題嗎,求大神指教一下,感激不盡。
描述比較粗糙,具體也不好說,只能根據(jù)你的題示,分享一些這里可能要注意的細(xì)節(jié):
1、確保SSL證書已經(jīng)準(zhǔn)備OK
2、SSL證書首先是和域名掛鉤的,不要用IP:PORT;
3、前后端協(xié)議以及端口要一致;
4、代理服務(wù)器代理了SSL? 是的話,workerman那邊不要設(shè)置SSL
5、另外搜社區(qū)類似問題很多以及看手冊:?http://doc.workerman.net/faq/secure-websocket-server.html
以為你使用了代理了呢,沒有代理的話,workerman的 $worker->transport = 'ssl' 開啟了嗎?
你截圖剛好看不到 proto 字段,這個(gè)字段就能反映出來。
可是我現(xiàn)在給你看的這個(gè)是阿里云的,沒有使用代理服務(wù)器的測試站點(diǎn)。正式環(huán)境之前測試過了。不行,后面會考慮到你現(xiàn)在說的這個(gè)問題的。現(xiàn)在我這個(gè)測試站點(diǎn),也是報(bào)這個(gè)錯(cuò)誤,是為什么呢?而我現(xiàn)在主要是找不到錯(cuò)誤的原因,就像是無頭蒼蠅一樣。唉、求大神你帶帶我啊
@614:什么proto啊。這個(gè)是$worker->transport = 'ssl' 開啟了的。使用ws去訪問會提示這個(gè)錯(cuò)誤要求使用wss去訪問。
@614:中間有代理服務(wù)器強(qiáng)制跳轉(zhuǎn)到https,在代理服務(wù)器上配置了ssl,在代碼中就不要$worker->transport = 'ssl';了是不是?除此之外還有沒有其他需要注意或者是弄其他的什么呢?
[attach]1507[/attach]
[attach]1506[/attach]
[attach]1505[/attach]
這個(gè)測試環(huán)境沒有使用代理。但是也報(bào)相同的錯(cuò)誤。
這個(gè)設(shè)置了啊,我那邊配置的https,然后這邊有一個(gè)判斷。stripos($this->root_path, 'https') === 0這樣子判斷是https協(xié)議,然后$this->is_ssl = true;后面判斷如果成立$this->workermanEvent->is_ssl,然后設(shè)置$ws_worker->transport = 'ssl';這樣子的邏輯。
總體來說就是哪里配置錯(cuò)誤了或者沒配置好。你可以弄個(gè)簡單demo按照來做,有問題再把demo的配置 代碼都貼出來。如果有用到nginx代理,nginx代理貼出來。貼問題的時(shí)候把用的手冊哪個(gè)方法都貼出來。
?
你這個(gè)項(xiàng)目封裝了一層,沒辦法確定你封裝的有沒有問題,是否導(dǎo)致漏了配置。
我剛才貼的圖就是簡單的demo,報(bào) WebSocket connection to 'wss://www.firebox.vip:2347/' failed: Error in connection establishment: net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH求教這又是什么意思什么錯(cuò)誤???
@5146: 幫你google到一篇文章,看了下,里面分好幾種情況,需要點(diǎn)兒英文功底,你先試試看:
https://www.deskdecode.com/err_ssl_version_or_cipher_mismatch/
你這個(gè)項(xiàng)目封裝了一層,不能確認(rèn)是不是封裝導(dǎo)致了漏掉了某些配置,你先不要用你的項(xiàng)目。
http://doc.workerman.net/faq/secure-websocket-server.html
拷貝手冊里的例子第一種或者第二種方法先運(yùn)行起來,有問題在群里貼出所有代碼和配置。
[attach]1521[/attach]
[attach]1522[/attach]
[attach]1520[/attach]
?
怎么感覺你機(jī)器上有多個(gè)版本的PHP呢,不管是幾個(gè),你自己確認(rèn)下,也不管是幾個(gè),每一個(gè)擴(kuò)展都對應(yīng)相應(yīng)版本的PHP,總體思路是這樣的:
假如使用的是 /path/to/php ,那么
@614:但是我沒有找到這個(gè)openssl.so.文件,php.ini里也沒有開啟這個(gè)擴(kuò)展,我的測試環(huán)境也是這樣的,但是測試環(huán)境可以用,沒問題,就正式環(huán)境搞不定了,中間有個(gè)代理服務(wù)器我就很麻木了。
@5146: /path/to/php -m | grep openssl 如果輸出了一個(gè)openssl, 并且同時(shí)也沒有報(bào)告任何的warning, 則代表openssl擴(kuò)展成功安裝。
@614:對啊,然后我又測試了,因?yàn)橛袀€(gè)代理服務(wù)器,所以我測試了加ssl,和不加ssl,還是報(bào)這個(gè)錯(cuò)誤。還是沒有解決啊。
[attach]1537[/attach]
還有就是為什么我守護(hù)進(jìn)程啟動(dòng)的話就提示選項(xiàng)不存在呢。
看上去是使用了集成wokerman后的 symfony 的命令行啟動(dòng)方式,這個(gè)不是 workerman的問題,得看 symfony手冊呢。
@5146: 你這么一問:
1、我建議你得好好看手冊,效率會大大提高呢。
2、改代碼必須重啟workerman, 當(dāng)然有時(shí)候只需 reload , 具體為啥看手冊。