Ошибка SSL клиента веб-сокета Android при подключении к серверу, на котором запущено несколько веб-приложений с поддержкой SSL - PullRequest
0 голосов
/ 27 ноября 2018

Я работаю над реализацией клиента Android, который подключается через веб-сокет к серверу.Я только что включил HTTPS на экземпляре сервера и теперь получаю эту проблему:

 W/System.err: com.neovisionaries.ws.client.HostnameUnverifiedException: The certificate of the peer (CN=otherdomain.com) does not match the expected hostname (domain.com)
    at com.neovisionaries.ws.client.SocketConnector.verifyHostname(SocketConnector.java:171)
    at com.neovisionaries.ws.client.SocketConnector.doConnect(SocketConnector.java:126)
    at com.neovisionaries.ws.client.SocketConnector.connect(SocketConnector.java:83)
    at com.neovisionaries.ws.client.WebSocket.connect(WebSocket.java:2152)
    at com.neovisionaries.ws.client.ConnectThread.runMain(ConnectThread.java:32)
    at com.neovisionaries.ws.client.WebSocketThread.run(WebSocketThread.java:45)

Кажется, что клиент websocket находит несоответствующие имена хостов сервера.

Некоторая другая связанная информация:

otherdomain.com - это другой из наших URL.Он указывает на отдельный экземпляр того же веб-приложения, работающего на том же сервере, что и domain.com, - приложение, над которым я сейчас работаю.

Мой код регистрирует URL-адрес, к которому он подключается, и я вижу, что он правильно ссылается domain.com:

connecting to: wss://domain.com?session_key=TheCorrectSessionKey

Как уже отмечалось, otherdomain.com является еще одним примером того жевеб приложение.В этом экземпляре уже был включен HTTPS, и с этим экземпляром все работает правильно.Тот же код клиента, который я сейчас использую, может успешно подключиться к этому экземпляру.

В этом же веб-приложении есть страница интерфейса, которая также подключается к веб-сокету через wss: //.Это работает правильно как в браузерах Chrome, так и в Firefox для domain.com, насколько я могу судить, единственным клиентом, имеющим проблемы, является клиент Android, и это только вариант приложения domain.com, имеющий проблемы, otherdomain.com.Кажется, работает нормально.

Я обнаружил эту проблему , открытую в библиотеке, которую я использую для веб-сокетов.Но я не уверен на 100%, если моя проблема связана с этим, но это может быть.В частности, кто-то заявляет:

Невозможно подключиться к домену сервера с поддержкой WebSocket, если он также не настроен в качестве сервера по умолчанию на веб-сайте.

IПредположим, что только один сайт может быть по умолчанию, и, возможно, otherdomain.com был установлен по умолчанию, поскольку он был завершен первым.Это все немного над моей головой, хотя, если честно, я не уверен, является ли это относительным или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...