È possibile avere WebSocket con HTTPS?
Quando si passa a HTTPS, il mio WebSocket restituisce un errore di sicurezza e funziona perfettamente con il normale HTTP.
Di seguito, uno snippet;
socket = new WebSocket("ws://my_www:1235");
È possibile avere WebSocket con HTTPS?
Quando si passa a HTTPS, il mio WebSocket restituisce un errore di sicurezza e funziona perfettamente con il normale HTTP.
Di seguito, uno snippet;
socket = new WebSocket("ws://my_www:1235");
Risposte:
La connessione WebSocket inizia la sua vita con un handshake HTTP o HTTPS. Quando si accede alla pagina tramite HTTP, è possibile utilizzare WS o WSS (WebSocket secure: WS over TLS). Tuttavia, quando la tua pagina viene caricata tramite HTTPS, puoi utilizzare solo WSS: i browser non consentono il "downgrade" della sicurezza.
Non è possibile utilizzare WebSocket su HTTPS, ma è possibile utilizzare WebSocket su TLS (HTTPS è HTTP su TLS). Usa semplicemente "wss: //" nell'URI.
Credo che la versione recente di Firefox non ti consenta di utilizzare WebSocket non TLS da una pagina HTTPS, ma il contrario non dovrebbe essere un problema.
wss://
a ws://
. Quindi, uso wss://ws.domain.com
e apache applico il proxy su di esso e reindirizzo la richiesta in cui è in esecuzione il server WS. ad esempio: ws://10.12.23.45:5641/server.php
. e so che è una pessima soluzione, anche se per me funziona. Apprezzerei il tuo aiuto se mi guidassi attraverso la configurazione di Apache. es: dove mettere l' .cert
ecc. grazie!
1 avvertenza aggiuntiva (oltre alla risposta di kanaka / peter): se usi WSS e il certificato del server non è accettabile per il browser, potresti non ottenere alcuna finestra di dialogo renderizzata dal browser (come accade per le pagine Web). Questo perché WebSocket è trattato come una cosiddetta "sottorisorsa", e il certificato accetta / eccezione di sicurezza / qualsiasi finestra di dialogo non viene riprodotta per le sottorisorse.
alert()
?