public final class SslContextBuilder
extends java.lang.Object
Modifier and Type | Method and Description |
---|---|
SslContextBuilder |
applicationProtocolConfig(ApplicationProtocolConfig apn)
应用协议协商配置。
|
SslContext |
build()
使用配置的设置创建新的
SslContext 实例。
|
SslContextBuilder |
ciphers(java.lang.Iterable<java.lang.String> ciphers)
按优先顺序启用密码套件。
|
SslContextBuilder |
ciphers(java.lang.Iterable<java.lang.String> ciphers, CipherSuiteFilter cipherFilter)
按优先顺序启用密码套件。
|
SslContextBuilder |
clientAuth(ClientAuth clientAuth)
设置客户端身份验证模式。
|
SslContextBuilder |
enableOcsp(boolean enableOcsp)
启用OCSP装订。
|
static SslContextBuilder |
forClient()
为新客户端创建一个构建器 SslContext 。
|
static SslContextBuilder |
forServer(java.io.File keyCertChainFile, java.io.File keyFile)
为新的服务器端 SslContext 创建一个构建器。
|
static SslContextBuilder |
forServer(java.io.File keyCertChainFile, java.io.File keyFile, java.lang.String keyPassword)
为新服务器端创建一个构建器 SslContext 。
|
static SslContextBuilder |
forServer(java.io.InputStream keyCertChainInputStream, java.io.InputStream keyInputStream)
为新的服务器端创建一个构建器 SslContext 。
|
static SslContextBuilder |
forServer(java.io.InputStream keyCertChainInputStream, java.io.InputStream keyInputStream, java.lang.String keyPassword)
为新的服务器端 SslContext 创建一个构建器。
|
static SslContextBuilder |
forServer(javax.net.ssl.KeyManagerFactory keyManagerFactory)
为新服务器端创建一个构建器 SslContext 。
|
static SslContextBuilder |
forServer(java.security.PrivateKey key, java.lang.String keyPassword, java.security.cert.X509Certificate... keyCertChain)
为新服务器端创建一个构建器 SslContext 。
|
static SslContextBuilder |
forServer(java.security.PrivateKey key, java.security.cert.X509Certificate... keyCertChain)
为新的服务器端 SslContext 创建一个构建器。
|
SslContextBuilder |
keyManager(java.io.File keyCertChainFile, java.io.File keyFile)
识别该主机的证书。
|
SslContextBuilder |
keyManager(java.io.File keyCertChainFile, java.io.File keyFile, java.lang.String keyPassword)
识别该主机的证书。
|
SslContextBuilder |
keyManager(java.io.InputStream keyCertChainInputStream, java.io.InputStream keyInputStream)
识别该主机的证书。
|
SslContextBuilder |
keyManager(java.io.InputStream keyCertChainInputStream, java.io.InputStream keyInputStream, java.lang.String keyPassword)
识别该主机的证书。
|
SslContextBuilder |
keyManager(javax.net.ssl.KeyManagerFactory keyManagerFactory)
识别该主机的管理员。
|
SslContextBuilder |
keyManager(java.security.PrivateKey key, java.lang.String keyPassword, java.security.cert.X509Certificate... keyCertChain)
识别该主机的证书。
|
SslContextBuilder |
keyManager(java.security.PrivateKey key, java.security.cert.X509Certificate... keyCertChain)
识别该主机的证书。
|
SslContextBuilder |
protocols(java.lang.String... protocols)
要启用的TLS协议版本。
|
SslContextBuilder |
sessionCacheSize(long sessionCacheSize)
设置用于存储SSL会话对象的高速缓存大小。
|
SslContextBuilder |
sessionTimeout(long sessionTimeout)
以秒为单位设置缓存的SSL会话对象的超时时间。
|
SslContextBuilder |
sslContextProvider(java.security.Provider sslContextProvider)
使用SSLContext
Provider 。
|
SslContextBuilder |
sslProvider(SslProvider provider)
要使用的 SslContext 实施。
|
SslContextBuilder |
startTls(boolean startTls)
true 如果第一个写请求不应该被加密。
|
SslContextBuilder |
trustManager(java.io.File trustCertCollectionFile)
受信任的证书用于验证远程端点的证书。
|
SslContextBuilder |
trustManager(java.io.InputStream trustCertCollectionInputStream)
受信任的证书用于验证远程端点的证书。
|
SslContextBuilder |
trustManager(javax.net.ssl.TrustManagerFactory trustManagerFactory)
可信经理验证远程终端的证书。
|
SslContextBuilder |
trustManager(java.security.cert.X509Certificate... trustCertCollection)
用于验证远程端点证书的可信证书,
null 使用系统默认值。
|
public static SslContextBuilder forClient()
SslContext
。
public static SslContextBuilder forServer(java.io.File keyCertChainFile, java.io.File keyFile)
SslContext
。
keyCertChainFile
- PEM格式的X.509证书链文件
keyFile
- PEM格式的PKCS#8私钥文件
keyManager(File, File)
public static SslContextBuilder forServer(java.io.InputStream keyCertChainInputStream, java.io.InputStream keyInputStream)
SslContext
。
keyCertChainInputStream
- PEM格式的X.509证书链的输入流
keyInputStream
- PEM格式的PKCS#8私钥的输入流
keyManager(InputStream, InputStream)
public static SslContextBuilder forServer(java.security.PrivateKey key, java.security.cert.X509Certificate... keyCertChain)
SslContext
。
key
- PKCS#8私钥
keyCertChain
- X.509证书链
keyManager(PrivateKey, X509Certificate[])
public static SslContextBuilder forServer(java.io.File keyCertChainFile, java.io.File keyFile, java.lang.String keyPassword)
SslContext
。
keyCertChainFile
- PEM格式的X.509证书链文件
keyFile
- PEM格式的PKCS#8私钥文件
keyPassword
- 密码
keyFile
,或
null
密码保护
keyManager(File, File, String)
public static SslContextBuilder forServer(java.io.InputStream keyCertChainInputStream, java.io.InputStream keyInputStream, java.lang.String keyPassword)
SslContext
。
keyCertChainInputStream
- PEM格式的X.509证书链的输入流
keyInputStream
- PEM格式的PKCS#8私钥的输入流
keyPassword
- 密码
keyFile
,或
null
密码保护
keyManager(InputStream, InputStream, String)
public static SslContextBuilder forServer(java.security.PrivateKey key, java.lang.String keyPassword, java.security.cert.X509Certificate... keyCertChain)
SslContext
。
key
- PKCS#8私钥
keyCertChain
- X.509证书链
keyPassword
-
keyFile
或
null
的密码(如果密码不受密码保护)
keyManager(File, File, String)
public static SslContextBuilder forServer(javax.net.ssl.KeyManagerFactory keyManagerFactory)
SslContext
。
keyManagerFactory
- 非
null
工厂用于服务器的私钥
keyManager(KeyManagerFactory)
public SslContextBuilder sslProvider(SslProvider provider)
SslContext
实现。
null
使用默认的一个。
public SslContextBuilder sslContextProvider(java.security.Provider sslContextProvider)
public SslContextBuilder trustManager(java.io.File trustCertCollectionFile)
null
使用系统默认值。
public SslContextBuilder trustManager(java.io.InputStream trustCertCollectionInputStream)
null
使用系统默认值。
public SslContextBuilder trustManager(java.security.cert.X509Certificate... trustCertCollection)
null
使用系统默认值。
public SslContextBuilder trustManager(javax.net.ssl.TrustManagerFactory trustManagerFactory)
null
使用系统默认值。
public SslContextBuilder keyManager(java.io.File keyCertChainFile, java.io.File keyFile)
keyCertChainFile
和keyFile
可能是null
用于客户端上下文,它禁用相互身份验证。
keyCertChainFile
- PEM格式的X.509证书链文件
keyFile
- PEM格式的PKCS#8私钥文件
public SslContextBuilder keyManager(java.io.InputStream keyCertChainInputStream, java.io.InputStream keyInputStream)
keyCertChainInputStream
和keyInputStream
可能是null
用于客户端上下文,它禁用相互身份验证。
keyCertChainInputStream
- PEM格式的X.509证书链的输入流
keyInputStream
- PEM格式的PKCS#8私钥的输入流
public SslContextBuilder keyManager(java.security.PrivateKey key, java.security.cert.X509Certificate... keyCertChain)
keyCertChain
和key
可能是null
用于客户端上下文,它禁用相互身份验证。
key
- PKCS#8私钥
keyCertChain
- 一个X.509证书链
public SslContextBuilder keyManager(java.io.File keyCertChainFile, java.io.File keyFile, java.lang.String keyPassword)
keyCertChainFile
和keyFile
可能为null
用于客户端上下文,禁用相互身份验证。
keyCertChainFile
- PEM格式的X.509证书链文件
keyFile
- PEM格式的PKCS#8私钥文件
keyPassword
-
keyFile
或
null
的密码(如果密码不受密码保护)
public SslContextBuilder keyManager(java.io.InputStream keyCertChainInputStream, java.io.InputStream keyInputStream, java.lang.String keyPassword)
keyCertChainInputStream
和keyInputStream
对于客户端上下文可能是null
,这会禁用相互身份验证。
keyCertChainInputStream
- PEM格式的X.509证书链的输入流
keyInputStream
- PEM格式的PKCS#8私钥的输入流
keyPassword
- 密码
keyInputStream
或
null
如果密码不受密码保护)
public SslContextBuilder keyManager(java.security.PrivateKey key, java.lang.String keyPassword, java.security.cert.X509Certificate... keyCertChain)
keyCertChain
和key
可能是null
用于客户端上下文,它禁用相互身份验证。
key
- 一个PKCS#8私钥文件
keyPassword
- 密码为
key
,或
null
如果密码不受密码保护)
keyCertChain
- 一个X.509证书链
public SslContextBuilder keyManager(javax.net.ssl.KeyManagerFactory keyManagerFactory)
keyManagerFactory
对于客户端上下文可能是null
,这会禁用相互身份验证。
使用KeyManagerFactory
仅支持SslProvider.JDK
或八二六三二七二六三四八六七四 / SslProvider.OPENSSL_REFCNT
如果使用OpenSSL的版本为1.0.1+。
你可以,如果你的OpenSSL的版本支持使用检查KeyManagerFactory
通过调用OpenSsl.supportsKeyManagerFactory()
。
如果不是这种情况,您必须使用keyManager(File, File)
或keyManager(File, File, String)
。
public SslContextBuilder ciphers(java.lang.Iterable<java.lang.String> ciphers)
null
使用默认密码套件。
public SslContextBuilder ciphers(java.lang.Iterable<java.lang.String> ciphers, CipherSuiteFilter cipherFilter)
cipherFilter
将在使用前应用于密码。
如果ciphers
是null
,那么将使用默认密码套件。
public SslContextBuilder applicationProtocolConfig(ApplicationProtocolConfig apn)
null
禁用支持。
public SslContextBuilder sessionCacheSize(long sessionCacheSize)
0
使用默认值。
public SslContextBuilder sessionTimeout(long sessionTimeout)
0
使用默认值。
public SslContextBuilder clientAuth(ClientAuth clientAuth)
public SslContextBuilder protocols(java.lang.String... protocols)
protocols
- 要启用的协议或
null
启用默认协议。
SSLEngine.setEnabledCipherSuites(String[])
public SslContextBuilder startTls(boolean startTls)
true
如果第一个写请求不应该被加密。
@UnstableApi public SslContextBuilder enableOcsp(boolean enableOcsp)
SslProvider
实现都支持OCSP装订, build()
将引发异常。
public SslContext build() throws javax.net.ssl.SSLException
SslContext
实例。
如果sslProvider(SslProvider)
设置为SslProvider.OPENSSL_REFCNT
,则调用者负责释放此对象,否则本机内存可能会泄漏。
javax.net.ssl.SSLException
Copyright © 2008–2018 The Netty Project. All rights reserved.