2012-07-18 9 views
6

WebSocket 비보안 응용 프로그램이 작동합니다. 그러나 내 웹 사이트는 https를 사용하며 Firefox가 연결이 안전하지 않다는 불평을 피하기 위해 Secure WebSocket 연결이 필요합니다.Secure WebSocket (wss : //)이 Firefox에서 작동하지 않습니다.

php5.2.9가있는 WebSocket 서버에 php-websocket-server을 사용하고 있습니다. 따라서 WebSocket secure를 사용할 때 openssl_decrypt 기능으로 패킷을 해독 할 수 없습니다.

: 나는 54321 포트에 12345 포트 서버 웹 소켓에 클라이언트 웹 소켓을 바인더 제본 그렇게하기 위해, WSS를 사용하여 클라이언트로 전송 된 패킷을 해독하기 위해 stunnel를 사용 왜

, 그럼 난 서버 모드에서 stunnel로 추가

[wsServer] 
accept = 12345 
connect = 192.168.1.227:54321 

이 구성으로 내 응용 프로그램은 https + wss를 통해 Chrome에서 정상적으로 작동합니다. 하지만 Firefox에서 핸드 셰이크 중 문제가 발생했습니다. Sec-WebSocket-VersionSec-WebSocket-Key이 헤더에없는 것으로 보입니다. http + ws를 통해 Firefox에서 작동하기 때문에 이해할 수 없습니다.

미리 도움을 주셔서 감사합니다.

편집 : 포트 12345의 인증서에 대한 예외가 추가되었습니다. 이제는 Firefox가 Sec-WebSocket-Key을 가지고 있다고 생각하기 때문에 핸드 셰이크가 잘 진행되고 있습니다. 여기

파이어 폭스 (크롬 요청보다 큰)와 작업 헤더 요청 :

GET/HTTP/1.1 
Host: 192.168.1.227:12345 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/;q=0.8 
Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3 
Accept-Encoding: gzip, deflate 
DNT: 1 
Connection: keep-alive, Upgrade 
Sec-WebSocket-Version: 13 
Origin: https://192.168.1.227 
Sec-WebSocket-Protocol: HyBi-00 
Sec-WebSocket-Key: 65nHN33M6drIPjQHcGK8pA== 
Pragma: no-cache 
Cache-Control: no-cache 
Upgrade: websocket 
+0

작동 중 또는 작동하지 않는 케이스에 대해 실제 헤더/핸드 셰이크를 양방향으로 표시 할 수 있다면 문제가 무엇인지 신속하게 파악할 수 있습니다. – kanaka

답변

8

당신이 자동 서명 인증서와 지역에서 작업하는 경우, 당신은 두 서버의 HTTPS에 승인해야한다 : //은 실행중인 포트 443 및 wss : // 여기에서 Firefox로 포트 12345에서 실행 중입니다.

귀하의 브라우저가 보안 웹 소켓 연결을 허용하지 않는 이유와 일부 헤더가 누락 된 것 같습니다.

+1

콘솔에서 보았을 때 WebSocket 요청이 취소되었고 마우스 오른쪽 버튼을 클릭하여 새 탭에서 요청을 열었습니다. 새 탭의 URL은'https : //192.168.1.227 : 12345 /'이었고 Firefox는 포트 12345에 대한 인증서를 수락하도록 요청했습니다. 처음 시도했을 때 Firefox는 https 포트는 허용하지만 포트는 허용하지 말 것을 요청했습니다 12345. – strat

+1

대답은 맞지만 조금 분명하지 않습니다. 여기에 있습니다. wss : //mysite.com : 12345를 사용하여 wss를 열려고하면 Firefox는 별도의 Firefox 탭을 열어 URL [https] : //mysite.com : 12345 및 보안 예외 확인 (보통 https 기반 연결의 경우 Firefox와 동일). 이것은 정말로 이상하고 Firefox에서만 발생합니다. –

+0

감사합니다. !!! 당신의 대답은 제게 많은 도움이되었습니다. + 1ed :) –

관련 문제