답변:
WebSocket 연결은 HTTP 또는 HTTPS 핸드 셰이크로 시작됩니다. HTTP를 통해 페이지에 액세스 할 때 WS 또는 WSS (WebSocket 보안 : WS over TLS)를 사용할 수 있습니다. 그러나 페이지가 HTTPS를 통해로드되면 WSS 만 사용할 수 있습니다. 브라우저는 보안을 "다운 그레이드"할 수 없습니다.
HTTPS를 통해 WebSocket을 사용할 수 없지만 TLS를 통해 WebSocket을 사용할 수 있습니다 (HTTPS는 TLS를 통한 HTTP). URI에서 "wss : //"를 사용하십시오.
최신 버전의 Firefox는 HTTPS 페이지에서 TLS가 아닌 WebSocket을 사용하도록 허용하지 않지만 그 반대는 문제가되지 않습니다.
wss://
에 ws://
. 그래서 나는 사용 wss://ws.domain.com
하고 아파치는 그것에 프록시를 적용하고 WS 서버가 실행되는 요청을 리디렉션합니다. 예 : ws://10.12.23.45:5641/server.php
. 그리고 나는 그것이 매우 나쁜 해결책이라는 것을 알고 있습니다. 아파치 구성을 안내해 주시면 도움을 주시면 감사하겠습니다. 예 : .cert
등 을 넣을 곳 감사합니다!
1 추가주의 사항 (kanaka / peter의 답변 외에) : WSS를 사용하고 서버 인증서가 브라우저에서 허용되지 않는 경우 브라우저 렌더링 대화 상자 가 표시되지 않을 수 있습니다 (웹 페이지에서 발생하는 것과 같은). 이는 WebSocket이 소위 "하위 리소스"로 취급되고 인증서 수락 / 보안 예외 / 하위 리소스에 대해 렌더링되지 않는 대화 상자가 있기 때문입니다.
alert()
?