- 所有已实现的接口:
TrustManager,X509TrustManager
X509TrustManager 接口的扩展以支持 SSL/TLS/DTLS 连接敏感信任管理。
为了防止中间人攻击,可以进行主机名检查以验证终端实体证书中的主机名是否与目标主机名匹配。 TLS/DTLS 不需要此类检查,但某些基于 TLS/DTLS 的协议(例如 HTTPS)需要。在早期版本的 JDK 中,证书链检查是在 SSL/TLS/DTLS 层完成的,主机名验证检查是在 TLS/DTLS 层上完成的。此类允许在对此类的单个调用期间完成检查。
RFC 2830 定义了“LDAPS”算法的服务标识规范。 RFC 2818 为“HTTPS”算法定义了服务标识和客户端标识规范。
- 自从:
- 1.7
- 参见:
-
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述abstract voidcheckClientTrusted(X509Certificate[] chain, String authType, Socket socket) 给定对等方提供的部分或完整证书链,根据身份验证类型和 ssl 参数构建和验证证书路径。abstract voidcheckClientTrusted(X509Certificate[] chain, String authType, SSLEngine engine) 给定对等方提供的部分或完整证书链,根据身份验证类型和 ssl 参数构建和验证证书路径。abstract voidcheckServerTrusted(X509Certificate[] chain, String authType, Socket socket) 给定对等方提供的部分或完整证书链,根据身份验证类型和 ssl 参数构建和验证证书路径。abstract voidcheckServerTrusted(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连接到的地址与 peer 中提供的身份端点识别算法中指定的端点实体 X509 证书。如果
socket参数是SSLSocket的一个实例,并且SSLParameters的算法约束非空,对于证书路径中的每个证书,主题公钥、签名算法、密钥用途、扩展密钥用途等字段。需要符合此套接字上的算法约束。- 参数:
chain- 对等证书链authType- 使用的密钥交换算法socket- 用于此连接的套接字。该参数可以为空,表示实现不需要检查ssl参数- 抛出:
IllegalArgumentException- 如果为chain参数传入空值或零长度数组,或者为authType参数传入空值或零长度字符串CertificateException- 如果证书链不受此 TrustManager 信任- 参见:
-
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。检查区分大小写。
如果
socket参数是SSLSocket的一个实例,并且SSLParameters的端点识别算法是非空的,为了防止中间人攻击,应该检查socket连接到的地址与 peer 中提供的身份端点识别算法中指定的端点实体 X509 证书。如果
socket参数是SSLSocket的一个实例,并且SSLParameters的算法约束非空,对于证书路径中的每个证书,主题公钥、签名算法、密钥用途、扩展密钥用途等字段。需要符合此套接字上的算法约束。- 参数:
chain- 对等证书链authType- 使用的密钥交换算法socket- 用于此连接的套接字。该参数可以为空,表示实现不需要检查ssl参数- 抛出:
IllegalArgumentException- 如果为chain参数传入空值或零长度数组,或者为authType参数传入空值或零长度字符串CertificateException- 如果证书链不受此 TrustManager 信任- 参见:
-
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- 用于此连接的引擎。该参数可以为空,表示实现不需要检查ssl参数- 抛出:
IllegalArgumentException- 如果为chain参数传入空值或零长度数组,或者为authType参数传入空值或零长度字符串CertificateException- 如果证书链不受此 TrustManager 信任- 参见:
-
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。检查区分大小写。
如果
engine参数可用,并且SSLParameters的端点识别算法是非空的,为了防止中间人攻击,engine连接到的地址应该与端点中呈现的对等体身份进行检查-实体 X509 证书,如端点识别算法中所指定。如果
engine参数可用,且SSLParameters的算法约束非空,对于证书路径中的每个证书,主题公钥、签名算法、密钥用途、扩展密钥用途等字段都需要符合到此引擎上的算法约束。- 参数:
chain- 对等证书链authType- 使用的密钥交换算法engine- 用于此连接的引擎。该参数可以为空,表示实现不需要检查ssl参数- 抛出:
IllegalArgumentException- 如果为chain参数传入空值或零长度数组,或者为authType参数传入空值或零长度字符串CertificateException- 如果证书链不受此 TrustManager 信任- 参见:
-