Правильный способ реализации checkServerTrusted для X509TrustManager

Каков рекомендуемый способ реализации метода checkServerTrusted для X509TrustManager? Мне нужно переопределить это для закрепления ssl, но я все время вижу только эту реализацию:

public void checkServerTrusted(X509Certificate[] certificates, String authType)
    throws CertificateException {
    if ((certificates != null) && (certificates.length == 1)) {
        certificates[0].checkValidity();
    } else {
        standardTrustManager.checkServerTrusted(certificates, authType);
    }
}

взято из этого ответа. Однако, на мой взгляд, это неправильно. Он только проверяет, действителен ли сертификат (не просрочен), но больше ничего.

Есть ли какая-нибудь реализация, которую вы могли бы мне порекомендовать, пожалуйста?


person Jakub Gruber    schedule 10.07.2017    source источник


Ответы (1)


Хорошо, решение состояло в том, чтобы не использовать пользовательский TrustManagers, а просто инициализировать KeyStore с моим закрепленным сертификатом ssl.

person Jakub Gruber    schedule 10.07.2017
comment
Обычно вы хотите закрепить ключ, а не сертификат. Закрепление ключа позволяет вам часто менять сертификаты, например, каждые 30 дней, и это сохраняет небольшой CRL. Небольшие CRL важны для мобильных клиентов. В зависимости от того, насколько велика ваша PKI, она может быть важна и для настольных клиентов. - person jww; 10.07.2017
comment
Вы имеете в виду инициализировать хранилище trust сертификатом. - person user207421; 11.07.2017