В X509TrustManager есть три метода. 1 checkClientTrusted: проверьте, доверяют ли сертификаты клиенту. 2 checkServerTrusted: проверьте, доверяют ли сертификаты сервера. Итак, для чего нужен метод getAcceptedIssuers? Где он будет называться?В X509TrustManager, для чего используется метод getAcceptedIssuers?
0
A
ответ
1
getAcceptedIssuers вернет список центров сертификации (CA) из настроенного/доступного доверия. Метод вызывается внутренне с помощью checkClientTrusted и checkServerTrusted, где он будет сравнивать ЦС входящего сертификата с списком доверенных ЦС, доступным из TrustStore.
Что произойдет, если мы вернем 'null' или' new X509Certificate [0]; 'из' getAcceptedIssuers() '? – MediumOne
@MediumOne это зависит от того, для чего этот метод используется. Обычно этот метод будет вызван внутренне при открытии https-соединения, если этот метод возвращает X509Certificate [0], то это означает, что в вашем хранилище доверенных сертификатов нет доверенных сертификатов, т. Е. Вы никому не доверяете;) так что либо checkServerTrusted, либо checkClientTrusted будет throw CertificateException в зависимости от того, что вызывается –
Если вы пишете собственную реализацию x509TrustManager, тогда в идеале вы должны вызывать getAcceptedissuers при реализации checkClientTrusted и checkServerTrusted, но это полностью зависит от того, что вы хотите сделать в реализации. getAcceptedIssuers больше похож на частный метод и не имеет внешней зависимости от моих знаний –