Класс X509ExtendedTrustManager
- java.lang.Object
-
- javax.net.ssl.X509ExtendedTrustManager
- Все реализованные интерфейсы:
- TrustManager, X509TrustManager
public abstract class X509ExtendedTrustManager extends Object implements X509TrustManager
Расширения интерфейса X509TrustManager для поддержки управления доверенностью, чувствительного к соединениям SSL/TLS.
Для предотвращения атак «человек посередине» можно выполнять проверки имени хоста для проверки того, что имя хоста в сертификате конечного узла соответствует целевому имени хоста. TLS не требует таких проверок, но некоторые протоколы поверх TLS (например, HTTPS) требуют. В более ранних версиях JDK проверки цепочки сертификатов выполнялись на уровне SSL/TLS, а проверки имени хоста выполнялись на уровне протокола поверх TLS. Этот класс позволяет выполнять проверки во время одного вызова этого класса.
RFC 2830 определяет спецификацию идентификации сервера для алгоритма «LDAPS». RFC 2818 определяет как спецификацию идентификации сервера, так и спецификацию идентификации клиента для алгоритма «HTTPS».
- С:
- 1.7
- См. также:
-
X509TrustManager,HostnameVerifier
Конструкторы
| Конструктор и описание |
|---|
X509ExtendedTrustManager() |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
abstract void |
checkClientTrusted(X509Certificate[] chain,
String authType,
Socket socket) На основе предоставленной части или полной цепочки сертификатов от удаленного узла, создайте и валидируйте путь сертификата в зависимости от типа аутентификации и параметров ssl. |
abstract void |
checkClientTrusted(X509Certificate[] chain,
String authType,
SSLEngine engine) На основе предоставленной части или полной цепочки сертификатов от удаленного узла, создайте и валидируйте путь сертификата в зависимости от типа аутентификации и параметров ssl. |
abstract void |
checkServerTrusted(X509Certificate[] chain,
String authType,
Socket socket) На основе предоставленной части или полной цепочки сертификатов от удаленного узла, создайте и валидируйте путь сертификата в зависимости от типа аутентификации и параметров ssl. |
abstract void |
checkServerTrusted(X509Certificate[] chain,
String authType,
SSLEngine engine) На основе предоставленной части или полной цепочки сертификатов от удаленного узла, создайте и валидируйте путь сертификата в зависимости от типа аутентификации и параметров ssl. |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Методы, унаследованные от интерфейса javax.net.ssl.X509TrustManager
checkClientTrusted, checkServerTrusted, getAcceptedIssuers Конструкторы
X509ExtendedTrustManager
public X509ExtendedTrustManager()
Методы
checkClientTrusted
public abstract void checkClientTrusted(X509Certificate[] chain,
String authType,
Socket socket)
throws CertificateException Учитывая частичную или полную цепочку сертификатов, предоставленную узлом, постройте и проверьте цепочку сертификатов на основе типа аутентификации и параметров ssl.
Тип аутентификации определяется фактически используемым сертификатом. Например, если используется RSAPublicKey, authType должен быть "RSA". Проверка регистрозависимая.
Если параметр socket является экземпляром SSLSocket, и алгоритм идентификации конечной точки SSLParameters не пустой, для предотвращения атак «человек посередине», адрес, к которому подключился socket, должен быть проверен на соответствие идентичности узла, представленной в сертификате X509 конечного узла, как указано в алгоритме идентификации конечной точки.
Если параметр socket является экземпляром SSLSocket, и ограничения алгоритма SSLParameters не равны null, для каждого сертификата в цепочке сертификации такие поля, как открытый ключ субъекта, алгоритм подписи, использование ключа, расширенное использование ключа и т.д., должны соответствовать ограничениям алгоритма, установленным для этого сокета.
- Параметры:
-
chain- цепочка сертификатов узла -
authType- алгоритм обмена ключами, используемый -
socket- сокет, используемый для этого подключения. Этот параметр может быть null, что означает, что реализациям не нужно проверять параметры ssl - Исключения:
-
IllegalArgumentException- если для параметраchainпередан null или массив нулевой длины, или если для параметраauthTypeпередан null или строка нулевой длины -
CertificateException- если цепочка сертификатов не является доверенной для данного TrustManager - См. также:
-
SSLParameters.getEndpointIdentificationAlgorithm(),SSLParameters.setEndpointIdentificationAlgorithm(String),SSLParameters.getAlgorithmConstraints(),SSLParameters.setAlgorithmConstraints(AlgorithmConstraints)
checkServerTrusted
public abstract void checkServerTrusted(X509Certificate[] chain,
String authType,
Socket socket)
throws CertificateException Учитывая частичную или полную цепочку сертификатов, предоставленную узлом, постройте и проверьте цепочку сертификатов на основе типа аутентификации и параметров ssl.
Тип аутентификации — это часть алгоритма обмена ключами наборов шифрования, представленная как строка, например, "RSA", "DHE_DSS". Примечание: для некоторых экспортируемых наборов шифрования алгоритм обмена ключами определяется во время выполнения во время рукопожатия. Например, для TLS_RSA_EXPORT_WITH_RC4_40_MD5 authType должен быть RSA_EXPORT, когда для обмена ключами используется эфемерный ключ RSA, и RSA, когда используется ключ из сертификата сервера. Проверка регистрозависимая.
Если параметр socket является экземпляром SSLSocket, и алгоритм идентификации конечной точки SSLParameters не пустой, для предотвращения атак «человек посередине», адрес, к которому подключился socket, должен быть проверен на соответствие идентичности узла, представленной в сертификате X509 конечного узла, как указано в алгоритме идентификации конечной точки.
Если параметр socket является экземпляром SSLSocket, и ограничения алгоритма SSLParameters не равны null, для каждого сертификата в цепочке сертификации такие поля, как открытый ключ субъекта, алгоритм подписи, использование ключа, расширенное использование ключа и т.д., должны соответствовать ограничениям алгоритма, установленным для этого сокета.
- Параметры:
-
chain- цепочка сертификатов узла -
authType- алгоритм обмена ключами, используемый -
socket- сокет, используемый для этого подключения. Этот параметр может быть null, что означает, что реализациям не нужно проверять параметры ssl - Исключения:
-
IllegalArgumentException- если для параметраchainпередан null или массив нулевой длины, или если для параметраauthTypeпередан null или строка нулевой длины -
CertificateException- если цепочка сертификатов не является доверенной для данного TrustManager - См. также:
-
SSLParameters.getEndpointIdentificationAlgorithm(),SSLParameters.setEndpointIdentificationAlgorithm(String),SSLParameters.getAlgorithmConstraints(),SSLParameters.setAlgorithmConstraints(AlgorithmConstraints)
checkClientTrusted
public abstract void checkClientTrusted(X509Certificate[] chain,
String authType,
SSLEngine engine)
throws CertificateException Учитывая частичную или полную цепочку сертификатов, предоставленную узлом, постройте и проверьте цепочку сертификатов на основе типа аутентификации и параметров ssl.
Тип аутентификации определяется фактически используемым сертификатом. Например, если используется RSAPublicKey, authType должен быть "RSA". Проверка регистрозависимая.
Если параметр engine доступен, и алгоритм идентификации конечной точки SSLParameters не пустой, для предотвращения атак «человек посередине», адрес, к которому подключился engine, должен быть проверен на соответствие идентичности узла, представленной в сертификате X509 конечного узла, как указано в алгоритме идентификации конечной точки.
Если параметр engine доступен, и ограничения алгоритма SSLParameters не равны null, для каждого сертификата в цепочке сертификации такие поля, как открытый ключ субъекта, алгоритм подписи, использование ключа, расширенное использование ключа и т.д., должны соответствовать ограничениям алгоритма, установленным для этого движка.
- Параметры:
-
chain- цепочка сертификатов узла -
authType- алгоритм обмена ключами, используемый -
engine- движок, используемый для этого подключения. Этот параметр может быть null, что означает, что реализациям не нужно проверять параметры ssl - Исключения:
-
IllegalArgumentException- если для параметраchainпередан null или массив нулевой длины, или если для параметраauthTypeпередан null или строка нулевой длины -
CertificateException- если цепочка сертификатов не является доверенной для данного TrustManager - См. также:
-
SSLParameters.getEndpointIdentificationAlgorithm(),SSLParameters.setEndpointIdentificationAlgorithm(String),SSLParameters.getAlgorithmConstraints(),SSLParameters.setAlgorithmConstraints(AlgorithmConstraints)
checkServerTrusted
public abstract void checkServerTrusted(X509Certificate[] chain,
String authType,
SSLEngine engine)
throws CertificateException Учитывая частичную или полную цепочку сертификатов, предоставленную узлом, постройте и проверьте цепочку сертификатов на основе типа аутентификации и параметров ssl.
Тип аутентификации — это часть алгоритма обмена ключами наборов шифрования, представленная как строка, например, "RSA", "DHE_DSS". Примечание: для некоторых экспортируемых наборов шифрования алгоритм обмена ключами определяется во время выполнения во время рукопожатия. Например, для TLS_RSA_EXPORT_WITH_RC4_40_MD5 authType должен быть RSA_EXPORT, когда для обмена ключами используется эфемерный ключ RSA, и RSA, когда используется ключ из сертификата сервера. Проверка регистрозависимая.
Если параметр engine доступен, и алгоритм идентификации конечной точки SSLParameters не пустой, для предотвращения атак «человек посередине», адрес, к которому подключился engine, должен быть проверен на соответствие идентичности узла, представленной в сертификате X509 конечного узла, как указано в алгоритме идентификации конечной точки.
Если параметр engine доступен, и ограничения алгоритма SSLParameters не равны null, для каждого сертификата в цепочке сертификации такие поля, как открытый ключ субъекта, алгоритм подписи, использование ключа, расширенное использование ключа и т.д., должны соответствовать ограничениям алгоритма, установленным для этого движка.
- Параметры:
-
chain- цепочка сертификатов узла -
authType- алгоритм обмена ключами, используемый -
engine- движок, используемый для этого подключения. Этот параметр может быть null, что означает, что реализациям не нужно проверять параметры ssl - Исключения:
-
IllegalArgumentException- если для параметраchainпередан null или массив нулевой длины, или если для параметраauthTypeпередан null или строка нулевой длины -
CertificateException- если цепочка сертификатов не является доверенной для данного TrustManager - См. также:
-
SSLParameters.getEndpointIdentificationAlgorithm(),SSLParameters.setEndpointIdentificationAlgorithm(String),SSLParameters.getAlgorithmConstraints(),SSLParameters.setAlgorithmConstraints(AlgorithmConstraints)
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.