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