SSLSocket не выполняет проверку имени хоста - PullRequest
0 голосов
/ 05 сентября 2018

Я использую SSLSocket для своего приложения для Android и согласно этому сообщению SSLSocket не выполняет проверку имени хоста здесь

и я не увидел никаких исключений при использовании IP вместо домена, и все работает нормально так я могу использовать IP или любой другой домен для подключения?

Я получил сертификат от letsencrypt для одного домена, и мне интересно, что я могу использовать его для любого домена или IP с SSLSocket!

SSLContext sc = SSLContext.getInstance("TLS");
sc.init(null, nulls, null);
SocketFactory sslsocketfactory = sc.getSocketFactory();
SSLSocket sslsocket = (SSLSocket) sslsocketfactory.createSocket(host, 443);
sslsocket.setSoTimeout(5000);
sslsocket.startHandshake();

1 Ответ

0 голосов
/ 05 сентября 2018

Ответ на вашу ссылку:

Ваше приложение должно выполнить собственную проверку имени хоста , предпочтительно по телефону getDefaultHostnameVerifier () с ожидаемым именем хоста. В дальнейшем, имейте в виду, что HostnameVerifier.verify () не вызывает исключение в ошибка, но вместо этого возвращает логический результат, который вы должны явно проверить .

«Интересно, что я могу использовать его для любого домена или IP с SSLSocket!»

Нет, вы не сможете этого сделать, сертификат соединения должен находиться в хранилище доверенных сертификатов вашего клиента , и мы можем ожидать, что разные домены используют разные сертификаты:)

Пожалуйста, посмотрите это Как мне выполнить проверку имени хоста при использовании JSSE? ссылка.

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