2012-07-12 46 views
4

我讀過(安全)Websocket使用的是與HTTP(S)協議相同的端口。 但是,我的PHP Websocket服務器收到來自客戶端的密碼握手,我正在監聽12345端口上的打開連接。與PHP一起使用安全Websocket - Crypted握手

我的系統通過非安全websocket運行良好,但我需要添加安全功能,我不明白爲什麼我收到這些密碼握手。這對我來說是透明的,這要感謝OSI模型...

如果我配置apache來激活SSL引擎並偵聽12345端口。我將無法再使用此端口爲我的PHP WebSocket的服務器,因爲它會接着在狀態「已使用」 ...或者我已經忘記了什麼......

我迷路了:(

編輯:

這裏是(使用wss://)我安全的WebSocket頭:

Request URL:wss://localhost:12345/

在這裏我簡單的WebSocket頭(使用ws://):

Request URL:ws://localhost:12345/ Request Method:GET Status Code:101 Switching Protocols Request Headersview source Connection:Upgrade Host:localhost:12345 Origin:http://localhost Sec-WebSocket-Extensions:x-webkit-deflate-frame Sec-WebSocket-Key:wovBDvKiKdy/+0Y2BQPr9w== Sec-WebSocket-Version:13 Upgrade:websocket (Key3):00:00:00:00:00:00:00:00 Response Headersview source Connection:Upgrade Sec-WebSocket-Accept:1ao7ngQG4LAa3JxFibyvoocbSAM= Upgrade:websocket (Challenge Response):00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

爲什麼我在沒有安全連接的情況下獲得更多?

+0

可能與[html5 Websocket with SSL]重複(http://stackoverflow.com/questions/9745249/html5-websocket-with-ssl) – 2012-07-12 11:12:17

+0

我已經看到這個帖子,不,它不是重複=) – Rodolf 2012-07-12 11:16:33

+0

不,它會回答你的問題。如果你的套接字是用'ws://'打開的,那麼它將是一個標準套接字。如果它是'wss://',它將是一個SSL套接字。 – 2012-07-12 11:20:14

回答

2

我讀的(安全)的WebSocket正在使用的HTTP(S)協議

默認情況下,是相同的端口 - 但你可以通過URL重寫端口兩個考慮:

http://www.example.com:443/ 
https://www.example.com:8080/ 
http://www.example.com:12345/ 

如果別的東西已經在一個特定的端口/地址監聽,那麼你不能運行第二個服務器在那裏 - 所以,如果你的網絡服務器已經在端口443(HTTPS)聽你將不能夠在同一個端口上運行一個獨立的websocket服務器。

只要留下您的HTTPS服務器在443和12345


剛纔看到你的最後一個註釋運行SSL服務器WS。

SSL不只是關於你在哪個端口上監聽 - 流量被加密。如果你想處理wss流量,那麼你需要一個SSL功能的服務器。有多種實現方式,它取決於你如何實現當前的服務器。

+0

我需要https://和wss:// fe atures。我是否需要使用第二個證書來配置端口12345,如httpd.conf文件(Apache2)中的端口443,或者我購買的端口可以使用兩次?感謝順便解釋=) – Rodolf 2012-07-13 09:47:13

+0

您可以使用相同的證書,如果是我,我不會嘗試使用Apache來處理WS/WSS的流量在所有 - 有更好的解決方案。這是最好的取決於你已經到位了,但是你可以做的不如看看https://github.com/kumina/wsproxy – symcbean 2012-07-14 23:29:01

+0

我想知道是否有可能解密PHP的WebSocket服務器SSL(例如使用OpenSSL)。使用stunnel可能是一個很好的解決方案,因爲如果我理解它的工作原理,我將不必更改我的websocket服務器。 – Rodolf 2012-07-17 07:15:49