Создание защищенного сервера Websocket (wss) на Java

Моя основная цель — поддерживать TLS на безопасном веб-сайте. В настоящее время я запускаю ws на сайте https, «SSL Lock» в Chrome отображается красным/сломанным, потому что я использую неаутентифицированный источник с веб-сайта https. Мне нужно защитить WebSocket, чтобы сохранить блокировку SSL.

Я искал в Интернете пример того, как реализовать wss на Java (сервер) и JavaScript (клиент), но не могу найти ничего, что можно было бы использовать. Я видел несколько примеров того, как создать сервер SSL (у меня есть необходимые сертификаты для соединения TLS/SSL), но я не уверен, как перевести это на wss.

Если бы кто-нибудь мог привести пример использования wss из Java, я был бы очень признателен.


person skamazin    schedule 06.04.2016    source источник
comment
Что именно вы здесь спрашиваете? Если вы используете сертификат, который не ссылается на ЦС, которому доверяет ваша клиентская платформа, вы никогда не получите зеленое счастье на панели браузера, независимо от того, какую структуру/библиотеку вы используете для реализации своего WebSocket.   -  person JJF    schedule 07.04.2016


Ответы (1)


Безопасный веб-сокет может использовать стандартный сертификат SSL для веб-сервера. Вы можете сделать это, например, в Tomcat или использовать Apache с mod_proxy_wstunnel между браузером и вашим Java-сервером.

person stdunbar    schedule 06.04.2016
comment
Кажется, это то направление, в котором я хочу двигаться. У вас есть какие-нибудь ресурсы для mod_proxy_wstunnel? Я новичок в Апаче =/ - person skamazin; 07.04.2016
comment
Вы можете взглянуть на документы — https://httpd.apache.org/docs/2.4/mod/mod_proxy_wstunnel.html — чтобы понять, с чего начать. Лично я бы начал без SSL, а затем перешел к получению настоящего сертификата SSL для вашего экземпляра Apache. Вы настроите браузер --> Apache --> Tomcat (или другой сервер). - person stdunbar; 08.04.2016
comment
Я уже проверил документы, но я не мог получить от них многого. Я попробовал sudo yum install mod_proxy_wstunnel в инстансе Amazon EC2, но у него нет пакетов для установки. У меня уже настроен SSL для обычного HTTPS, мне просто нужно, чтобы он применялся и для WebSockets. Насколько мне известно, мне нужен пакет, прежде чем я смогу продолжить, верно? - person skamazin; 09.04.2016
comment
Итак, после небольшого копания первая проблема заключается в том, что Amazon EC2 (Amazon Linux AMI 2016.03.0) поставляется с Apache 2.2, а mod_proxy_wstunnel — это Apache 2.4. Возможно, было бы проще забыть об Apache и сделать это в Tomcat — похоже, вы уже работали с самозаверяющим сертификатом. У Tomcat есть документы по этому вопросу (tomcat.apache.org/tomcat-8.0- doc/ssl-howto.html), это тоже может помочь. В противном случае вам нужно будет перейти на AMI Ubuntu EC2, в котором есть Apache 2.4. - person stdunbar; 10.04.2016
comment
Могу ли я sudo yum install httpd24 установить Apache 2.4 на ящик EC2, а затем установить mod_proxy_wstunnel, или это испортит все конфигурации и SSL? - person skamazin; 11.04.2016
comment
Я обновился до Apache2.4, поэтому у меня есть модуль mod_proxy_wstunnel. Какие файлы конфигурации мне следует отредактировать, чтобы заставить SSL работать с WebSockets? Я чувствую, что у меня почти есть решение, и я был бы очень признателен за вашу помощь в завершении этого. - person skamazin; 17.04.2016