Apakah mungkin memiliki WebSockets dengan HTTPS?
Saat beralih ke HTTPS, WebSocket saya mengembalikan kesalahan keamanan dan berfungsi sempurna dengan HTTP biasa.
Di bawah ini, cuplikan;
socket = new WebSocket("ws://my_www:1235");
Apakah mungkin memiliki WebSockets dengan HTTPS?
Saat beralih ke HTTPS, WebSocket saya mengembalikan kesalahan keamanan dan berfungsi sempurna dengan HTTP biasa.
Di bawah ini, cuplikan;
socket = new WebSocket("ws://my_www:1235");
Jawaban:
Koneksi WebSocket memulai hidupnya dengan jabat tangan HTTP atau HTTPS. Ketika halaman diakses melalui HTTP, Anda dapat menggunakan WS atau WSS (WebSocket secure: WS over TLS). Namun, saat halaman Anda dimuat melalui HTTPS, Anda hanya dapat menggunakan WSS - browser tidak mengizinkan untuk "menurunkan" keamanan.
Anda tidak dapat menggunakan WebSockets melalui HTTPS, tetapi Anda dapat menggunakan WebSockets melalui TLS (HTTPS adalah HTTP melalui TLS). Cukup gunakan "wss: //" di URI.
Saya yakin versi Firefox terbaru tidak akan membiarkan Anda menggunakan non-TLS WebSockets dari halaman HTTPS, tetapi sebaliknya seharusnya tidak menjadi masalah.
wss://
ke ws://
. Jadi, saya menggunakan wss://ws.domain.com
dan apache menerapkan proxy di atasnya dan mengarahkan permintaan di mana server WS berjalan. mis ws://10.12.23.45:5641/server.php
. : . dan saya tahu ini solusi yang sangat buruk - meskipun, ini berhasil untuk saya. Saya akan menghargai bantuan Anda jika Anda memandu saya melalui konfigurasi apache. misalnya: di mana harus meletakkan .cert
dll terima kasih!
1 peringatan tambahan (selain jawaban oleh kanaka / peter): jika Anda menggunakan WSS, dan sertifikat server tidak dapat diterima oleh browser, Anda mungkin tidak mendapatkan dialog yang diberikan browser (seperti yang terjadi pada halaman Web). Ini karena WebSockets diperlakukan sebagai apa yang disebut "sub-sumber", dan sertifikat menerima / pengecualian keamanan / dialog apa pun tidak diberikan untuk sub-sumber.
alert()
?