У меня есть особый случай использования, когда мне нужен промежуточный хост между клиентом и удаленным сервером.Я уже настроил промежуточный хост @ 10.1.10.15 для пересылки трафика на / с моего удаленного сервера.
Так что в моем приложении для Android я буду отправлять HTTP-запрос на основе URL, например:
https://10.1.10.15/...
Промежуточный хост представит сертификат, полученный от фактического удаленного сервера, и затем HostnameVerifier войдет в игру и отклонит запрос, потому что 10.1.10.15 не соответствует CN на сертификате от удаленного сервера.
Я, конечно, могу настроить ssl HostnameVerifier так, чтобы он смотрел, является ли имя хоста IP-адресом @ 10.1.10.15:
protected static final HostnameVerifier ALWAYS_VERIFY = new HostnameVerifier() {
@Override
public boolean verify(String hostname, SSLSession sslSession) {
return hostname.toLowerCase().equals(@"10.1.10.15");
}
};
, но я чувствую, что это может вызвать некоторые проблемы с безопасностью.
Мой вопрос: как я могу сделать это безопасно?