public abstract class X509ExtendedTrustManager extends Object implements X509TrustManager
X509TrustManager
接口支持SSL / TLS连接敏感的信任管理。
为了防止中间人攻击,主机名检查可以验证终端实体证书的主机名匹配目标主机名。TLS不需要这样的检查,但在TLS协议(如HTTPS)做。在早期版本的JDK,证书链检查在SSL / TLS层完成,验证主机检查了在层TLS。这个类允许在对这个类的一次调用中进行检查。
RFC 2830定义了服务器识别规范“卷”算法。RFC 2818定义了服务器和客户端的标识规范鉴定为“https”算法。
X509TrustManager
,
HostnameVerifier
Constructor and Description |
---|
X509ExtendedTrustManager() |
Modifier and Type | Method and Description |
---|---|
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参数。
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
checkClientTrusted, checkServerTrusted, getAcceptedIssuers
public abstract void checkClientTrusted(X509Certificate[] chain, String authType, Socket socket) throws CertificateException
身份验证类型取决于所使用的实际证书。例如,如果rsapublickey使用,authType应该“RSA”。检查是区分大小写的。
如果socket
参数是SSLSocket
实例,对SSLParameters
端点识别算法是非空的,防止中间人攻击,这socket
连接应与同伴的身份结束了实体X509证书检查地址,在指定的端点识别算法。
如果socket
参数是SSLSocket
实例,对SSLParameters
算法约束非空,因为证书路径中的所有证书,如主体公钥领域,签名算法,密钥用法,扩展密钥用法,等需要符合算法的约束在这个地方的插座。
chain
-证书链
authType
使用的密钥交换算法
socket
-用于此连接的套接字。此参数可以为零,说明系统不需要检查SSL参数
IllegalArgumentException
-如果为空或零长度数组传递给
chain
参数或者零或零长度字符串传递给
authType
参数
CertificateException
-如果证书链是不是这trustmanager可信
SSLParameters.getEndpointIdentificationAlgorithm()
,
SSLParameters.setEndpointIdentificationAlgorithm(String)
,
SSLParameters.getAlgorithmConstraints()
,
SSLParameters.setAlgorithmConstraints(AlgorithmConstraints)
public abstract void checkServerTrusted(X509Certificate[] chain, String authType, Socket socket) throws CertificateException
认证类型的密码套件表示为一个字符串的密钥交换算法的部分,如“流产”,“dhe_dss”。注意:对于一些出口的密码套件,密钥交换算法确定在运行时的握手。例如,对于tls_rsa_export_with_rc4_40_md5,authType应该rsa_export当短暂的RSA密钥进行密钥交换,和RSA当从服务器证书的密钥是使用。检查是区分大小写的。
如果socket
参数是SSLSocket
实例,对SSLParameters
端点识别算法是非空的,防止中间人攻击,这socket
连接应与同伴的身份结束了实体X509证书检查地址,在指定的端点识别算法。
如果socket
参数是SSLSocket
实例,对SSLParameters
算法约束非空,因为证书路径中的所有证书,如主体公钥领域,签名算法,密钥用法,扩展密钥用法,等需要符合算法的约束在这个地方的插座。
chain
-证书链
authType
使用的密钥交换算法
socket
-用于此连接的套接字。此参数可以为零,说明系统不需要检查SSL参数
IllegalArgumentException
-如果为空或零长度数组传递给
chain
参数或者零或零长度字符串传递给
authType
参数
CertificateException
-如果证书链是不是这trustmanager可信
SSLParameters.getEndpointIdentificationAlgorithm()
,
SSLParameters.setEndpointIdentificationAlgorithm(String)
,
SSLParameters.getAlgorithmConstraints()
,
SSLParameters.setAlgorithmConstraints(AlgorithmConstraints)
public abstract void checkClientTrusted(X509Certificate[] chain, String authType, SSLEngine engine) throws CertificateException
身份验证类型取决于所使用的实际证书。例如,如果rsapublickey使用,authType应该“RSA”。检查是区分大小写的。
如果engine
参数是可用的,和的SSLParameters
端点识别算法是非空的,防止中间人攻击,这engine
连接应与同伴的身份结束了实体X509证书检查地址,在指定的端点识别算法。
如果engine
参数是可用的,和SSLParameters
算法的约束是非空的,因为证书路径中的所有证书,如主体公钥领域,签名算法,密钥用法,扩展密钥用法,等需要符合算法的约束在这个引擎。
chain
-证书链
authType
使用的密钥交换算法
engine
-用于此连接的发动机。此参数可以为零,说明系统不需要检查SSL参数
IllegalArgumentException
-如果为空或零长度数组传递给
chain
参数或者零或零长度字符串传递给
authType
参数
CertificateException
-如果证书链是不是这trustmanager可信
SSLParameters.getEndpointIdentificationAlgorithm()
,
SSLParameters.setEndpointIdentificationAlgorithm(String)
,
SSLParameters.getAlgorithmConstraints()
,
SSLParameters.setAlgorithmConstraints(AlgorithmConstraints)
public abstract void checkServerTrusted(X509Certificate[] chain, String authType, SSLEngine engine) throws CertificateException
认证类型的密码套件表示为一个字符串的密钥交换算法的部分,如“流产”,“dhe_dss”。注意:对于一些出口的密码套件,密钥交换算法确定在运行时的握手。例如,对于tls_rsa_export_with_rc4_40_md5,authType应该rsa_export当短暂的RSA密钥进行密钥交换,和RSA当从服务器证书的密钥是使用。检查是区分大小写的。
如果engine
参数是可用的,和的SSLParameters
端点识别算法是非空的,防止中间人攻击,这engine
连接应与同伴的身份结束了实体X509证书检查地址,在指定的端点识别算法。
如果engine
参数是可用的,和SSLParameters
算法的约束是非空的,因为证书路径中的所有证书,如主体公钥领域,签名算法,密钥用法,扩展密钥用法,等需要符合算法的约束在这个引擎。
chain
-证书链
authType
使用的密钥交换算法
engine
-用于此连接的发动机。此参数可以为零,说明系统不需要检查SSL参数
IllegalArgumentException
-如果为空或零长度数组传递给
chain
参数或者零或零长度字符串传递给
authType
参数
CertificateException
-如果证书链是不是这trustmanager可信
SSLParameters.getEndpointIdentificationAlgorithm()
,
SSLParameters.setEndpointIdentificationAlgorithm(String)
,
SSLParameters.getAlgorithmConstraints()
,
SSLParameters.setAlgorithmConstraints(AlgorithmConstraints)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.