При каких обстоятельствах можно было бы использовать HostnameVerifier
вместо TrustManager
в Java? Рекомендуется ли одно над другим? Глядя на документы Java (Interface HostnameVerifier и интерфейс TrustManager) , я тоже не могу сказать, когда его лучше использовать (хотя TrustManager
кажется более универсальным).
Раньше я всегда использовал пользовательский файл TrustManager
. Однако я заметил, что эксплойт Heartbleed в java использует оба (но я не думаю, что это правильно) .
EDIT: при использовании HostnameVerifier
выполняются ли другие обычные проверки X509, такие как построение пути, истечение срока действия и отзыв (если настроено)? Я думаю, что по существу спрашиваю, дополняет ли HostnameVerifier
другие проверки (а не заменяет ли их).
Например, предположим, что сервер разработки находится в dev.example.com
и подписан внутренним центром сертификации. В сертификате dev.example.com
есть одно DNS-имя, и это dev.example.com
. Далее предположим, что я подключаюсь к нему как 192.168.1.10
. Могу ли я использовать HostnameVerifier
, чтобы разрешить и dev.example.com
, и 192.168.1.10
? В этом сценарии разрешено ли дополнительное имя и выполняются ли другие обычные проверки X509?