- java.lang.Object
-
- javax.net.ssl.X509ExtendedTrustManager
-
- All Implemented Interfaces:
-
TrustManager
,X509TrustManager
public abstract class X509ExtendedTrustManager extends Object implements X509TrustManager
扩展到X509TrustManager
接口,支持SSL / TLS / DTLS连接敏感信任管理。为了防止中间人攻击,可以进行主机名检查,以验证终端实体证书中的主机名是否与目标主机名匹配。 TLS / DTLS不需要这样的检查,但是通过TLS / DTLS(如HTTPS)的一些协议。 在早期版本的JDK中,证书链检查是在SSL / TLS / DTLS层完成的,主机名验证检查是通过TLS / DTLS层完成的。 此类允许在单次调用此类时进行检查。
RFC 2830定义了“LDAPS”算法的服务器标识规范。 RFC 2818定义了“HTTPS”算法的服务器标识和客户端标识规范。
- 从以下版本开始:
- 1.7
- 另请参见:
-
X509TrustManager
,HostnameVerifier
-
-
构造方法摘要
构造方法 Constructor 描述 X509ExtendedTrustManager()
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 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参数构建和验证证书路径。-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface javax.net.ssl.X509TrustManager
checkClientTrusted, checkServerTrusted, getAcceptedIssuers
-
-
-
-
方法详细信息
-
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
非空,在认证路径中的每个证书,领域,如主体公钥,签名算法,密钥使用,扩展密钥用法等。需要符合该套接字上的算法约束。- 参数
-
chain
- 对等证书链 -
authType
- 所使用的密钥交换算法 -
socket
- 用于此连接的套接字。 此参数可以为null,这表示实现不需要检查ssl参数 - 异常
-
IllegalArgumentException
-如果null或零长度的数组被传递在用于chain
参数,或者如果空或零长度字符串被传递在用于authType
参数 -
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,当使用短暂RSA密钥进行密钥交换时,authType应为RSA_EXPORT,当使用来自服务器证书的密钥时,authType应为RSA_EXPORT。 检查区分大小写。
如果
socket
参数的实例SSLSocket
,和的端点识别算法SSLParameters
非空,以防止人在这方面的中间人攻击,该地址socket
连接到应该针对提出的同行的身份进行检查终端实体X509证书,如端点识别算法中指定的。如果
socket
参数的实例SSLSocket
,和的算法约束SSLParameters
非空,在认证路径中的每个证书,领域,如主体公钥,签名算法,密钥使用,扩展密钥用法等。需要符合该套接字上的算法约束。- 参数
-
chain
- 对等证书链 -
authType
- 使用密钥交换算法 -
socket
- 用于此连接的套接字。 此参数可以为null,这表示实现不需要检查ssl参数 - 异常
-
IllegalArgumentException
-如果null或零长度的数组被传递在用于chain
参数,或者如果空或零长度字符串被传递在用于authType
参数 -
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
非空,在认证路径中的每个证书,如主题的公开密钥,签名算法,密钥使用,扩展密钥使用等领域需要符合到这个引擎上的算法约束。- 参数
-
chain
- 对等证书链 -
authType
- 使用密钥交换算法 -
engine
- 用于此连接的引擎。 此参数可以为null,这表示实现不需要检查ssl参数 - 异常
-
IllegalArgumentException
-如果null或零长度的数组被传递在用于chain
参数,或者如果空或零长度字符串被传递在用于authType
参数 -
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,当使用短暂RSA密钥进行密钥交换时,authType应为RSA_EXPORT,当使用来自服务器证书的密钥时,authType应为RSA_EXPORT。 检查区分大小写。
如果
engine
参数是可用的,和的端点识别算法SSLParameters
非空,以防止人在这方面的中间人攻击,该地址engine
连接到要反对在最终呈现体的身份进行检查实体X509证书,如端点识别算法中规定的。如果
engine
参数是可用的,和的算法约束SSLParameters
非空,在认证路径中的每个证书,如主题的公开密钥,签名算法,密钥使用,扩展密钥使用等领域需要符合到这个引擎上的算法约束。- 参数
-
chain
- 对等证书链 -
authType
- 使用密钥交换算法 -
engine
- 用于此连接的引擎。 此参数可以为null,这表示实现不需要检查ssl参数 - 异常
-
IllegalArgumentException
-如果null或零长度的数组被传递在用于chain
参数,或者如果空或零长度字符串被传递在用于authType
参数 -
CertificateException
- 如果证书链不被该TrustManager信任 - 另请参见:
-
SSLParameters.getEndpointIdentificationAlgorithm()
,SSLParameters.setEndpointIdentificationAlgorithm(String)
,SSLParameters.getAlgorithmConstraints()
,SSLParameters.setAlgorithmConstraints(AlgorithmConstraints)
-
-