Package org.jboss.netty.handler.ssl
Class SslContext
java.lang.Object
org.jboss.netty.handler.ssl.SslContext
- Direct Known Subclasses:
JdkSslContext,OpenSslServerContext
A secure socket protocol implementation which acts as a factory for
SSLEngine and SslHandler.
Internally, it is implemented via JDK's SSLContext or OpenSSL's SSL_CTX.
Making your server support SSL/TLS
// In yourChannelPipelineFactory:ChannelPipelinep =Channels.pipeline();SslContextsslCtx =SslContext.newServerContext(...); p.addLast("ssl",sslCtx.newEngine()); ...
Making your client support SSL/TLS
// In yourChannelPipelineFactory:ChannelPipelinep =Channels.pipeline();SslContextsslCtx =SslContext.newClientContext(...); p.addLast("ssl",sslCtx.newEngine(host, port)); ...
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal SslBufferPoolReturns the list of enabled cipher suites, in the order of preference.static SslProviderReturns the default client-side implementation provider currently in use.static SslProviderReturns the default server-side implementation provider currently in use.abstract booleanisClient()Returns thetrueif and only if this context is for client-side.final booleanisServer()Returnstrueif and only if this context is for server-side.(package private) SslBufferPoolstatic SslContextCreates a new client-sideSslContext.static SslContextnewClientContext(File certChainFile) Creates a new client-sideSslContext.static SslContextnewClientContext(File certChainFile, TrustManagerFactory trustManagerFactory) Creates a new client-sideSslContext.static SslContextnewClientContext(TrustManagerFactory trustManagerFactory) Creates a new client-sideSslContext.static SslContextnewClientContext(SslBufferPool bufPool, File certChainFile, TrustManagerFactory trustManagerFactory, Iterable<String> ciphers, Iterable<String> nextProtocols, long sessionCacheSize, long sessionTimeout) Creates a new client-sideSslContext.static SslContextnewClientContext(SslProvider provider) Creates a new client-sideSslContext.static SslContextnewClientContext(SslProvider provider, File certChainFile) Creates a new client-sideSslContext.static SslContextnewClientContext(SslProvider provider, File certChainFile, TrustManagerFactory trustManagerFactory) Creates a new client-sideSslContext.static SslContextnewClientContext(SslProvider provider, TrustManagerFactory trustManagerFactory) Creates a new client-sideSslContext.static SslContextnewClientContext(SslProvider provider, SslBufferPool bufPool, File certChainFile, TrustManagerFactory trustManagerFactory, Iterable<String> ciphers, Iterable<String> nextProtocols, long sessionCacheSize, long sessionTimeout) Creates a new client-sideSslContext.abstract SSLEngineCreates a newSSLEngine.abstract SSLEngineCreates a newSSLEngineusing advisory peer information.final SslHandlerCreates a newSslHandler.final SslHandlernewHandler(String peerHost, int peerPort) Creates a newSslHandlerwith advisory peer information.private SslHandlernewHandler(SSLEngine engine) static SslContextnewServerContext(File certChainFile, File keyFile) Creates a new server-sideSslContext.static SslContextnewServerContext(File certChainFile, File keyFile, String keyPassword) Creates a new server-sideSslContext.static SslContextnewServerContext(SslBufferPool bufPool, File certChainFile, File keyFile, String keyPassword, Iterable<String> ciphers, Iterable<String> nextProtocols, long sessionCacheSize, long sessionTimeout) Creates a new server-sideSslContext.static SslContextnewServerContext(SslProvider provider, File certChainFile, File keyFile) Creates a new server-sideSslContext.static SslContextnewServerContext(SslProvider provider, File certChainFile, File keyFile, String keyPassword) Creates a new server-sideSslContext.static SslContextnewServerContext(SslProvider provider, SslBufferPool bufPool, File certChainFile, File keyFile, String keyPassword, Iterable<String> ciphers, Iterable<String> nextProtocols, long sessionCacheSize, long sessionTimeout) Creates a new server-sideSslContext.Returns the list of application layer protocols for the TLS NPN/ALPN extension, in the order of preference.abstract longReturns the size of the cache used for storing SSL session objects.abstract longReturns the timeout for the cached SSL session objects, in seconds.
-
Field Details
-
bufferPool
-
-
Constructor Details
-
SslContext
SslContext(SslBufferPool bufferPool)
-
-
Method Details
-
defaultServerProvider
Returns the default server-side implementation provider currently in use.- Returns:
SslProvider.OPENSSLif OpenSSL is available.SslProvider.JDKotherwise.
-
defaultClientProvider
Returns the default client-side implementation provider currently in use.- Returns:
SslProvider.JDK, because it is the only implementation at the moment
-
newServerContext
Creates a new server-sideSslContext.- Parameters:
certChainFile- an X.509 certificate chain file in PEM formatkeyFile- a PKCS#8 private key file in PEM format- Returns:
- a new server-side
SslContext - Throws:
SSLException
-
newServerContext
public static SslContext newServerContext(File certChainFile, File keyFile, String keyPassword) throws SSLException Creates a new server-sideSslContext.- Parameters:
certChainFile- an X.509 certificate chain file in PEM formatkeyFile- a PKCS#8 private key file in PEM formatkeyPassword- the password of thekeyFile.nullif it's not password-protected.- Returns:
- a new server-side
SslContext - Throws:
SSLException
-
newServerContext
public static SslContext newServerContext(SslBufferPool bufPool, File certChainFile, File keyFile, String keyPassword, Iterable<String> ciphers, Iterable<String> nextProtocols, long sessionCacheSize, long sessionTimeout) throws SSLException Creates a new server-sideSslContext.- Parameters:
bufPool- the buffer pool which will be used by the returnedSslContext.nullto use the default buffer pool.certChainFile- an X.509 certificate chain file in PEM formatkeyFile- a PKCS#8 private key file in PEM formatkeyPassword- the password of thekeyFile.nullif it's not password-protected.ciphers- the cipher suites to enable, in the order of preference.nullto use the default cipher suites.nextProtocols- the application layer protocols to accept, in the order of preference.nullto disable TLS NPN/ALPN extension.sessionCacheSize- the size of the cache used for storing SSL session objects.0to use the default value.sessionTimeout- the timeout for the cached SSL session objects, in seconds.0to use the default value.- Returns:
- a new server-side
SslContext - Throws:
SSLException
-
newServerContext
public static SslContext newServerContext(SslProvider provider, File certChainFile, File keyFile) throws SSLException Creates a new server-sideSslContext.- Parameters:
provider- theSslContextimplementation to use.nullto use the current default one.certChainFile- an X.509 certificate chain file in PEM formatkeyFile- a PKCS#8 private key file in PEM format- Returns:
- a new server-side
SslContext - Throws:
SSLException
-
newServerContext
public static SslContext newServerContext(SslProvider provider, File certChainFile, File keyFile, String keyPassword) throws SSLException Creates a new server-sideSslContext.- Parameters:
provider- theSslContextimplementation to use.nullto use the current default one.certChainFile- an X.509 certificate chain file in PEM formatkeyFile- a PKCS#8 private key file in PEM formatkeyPassword- the password of thekeyFile.nullif it's not password-protected.- Returns:
- a new server-side
SslContext - Throws:
SSLException
-
newServerContext
public static SslContext newServerContext(SslProvider provider, SslBufferPool bufPool, File certChainFile, File keyFile, String keyPassword, Iterable<String> ciphers, Iterable<String> nextProtocols, long sessionCacheSize, long sessionTimeout) throws SSLException Creates a new server-sideSslContext.- Parameters:
provider- theSslContextimplementation to use.nullto use the current default one.bufPool- the buffer pool which will be used by the returnedSslContext.nullto use the default buffer pool.certChainFile- an X.509 certificate chain file in PEM formatkeyFile- a PKCS#8 private key file in PEM formatkeyPassword- the password of thekeyFile.nullif it's not password-protected.ciphers- the cipher suites to enable, in the order of preference.nullto use the default cipher suites.nextProtocols- the application layer protocols to accept, in the order of preference.nullto disable TLS NPN/ALPN extension.sessionCacheSize- the size of the cache used for storing SSL session objects.0to use the default value.sessionTimeout- the timeout for the cached SSL session objects, in seconds.0to use the default value.- Returns:
- a new server-side
SslContext - Throws:
SSLException
-
newClientContext
Creates a new client-sideSslContext.- Returns:
- a new client-side
SslContext - Throws:
SSLException
-
newClientContext
Creates a new client-sideSslContext.- Parameters:
certChainFile- an X.509 certificate chain file in PEM format- Returns:
- a new client-side
SslContext - Throws:
SSLException
-
newClientContext
public static SslContext newClientContext(TrustManagerFactory trustManagerFactory) throws SSLException Creates a new client-sideSslContext.- Parameters:
trustManagerFactory- theTrustManagerFactorythat provides theTrustManagers that verifies the certificates sent from servers.nullto use the default.- Returns:
- a new client-side
SslContext - Throws:
SSLException
-
newClientContext
public static SslContext newClientContext(File certChainFile, TrustManagerFactory trustManagerFactory) throws SSLException Creates a new client-sideSslContext.- Parameters:
certChainFile- an X.509 certificate chain file in PEM format.nullto use the system defaulttrustManagerFactory- theTrustManagerFactorythat provides theTrustManagers that verifies the certificates sent from servers.nullto use the default.- Returns:
- a new client-side
SslContext - Throws:
SSLException
-
newClientContext
public static SslContext newClientContext(SslBufferPool bufPool, File certChainFile, TrustManagerFactory trustManagerFactory, Iterable<String> ciphers, Iterable<String> nextProtocols, long sessionCacheSize, long sessionTimeout) throws SSLException Creates a new client-sideSslContext.- Parameters:
bufPool- the buffer pool which will be used by the returnedSslContext.nullto use the default buffer pool.certChainFile- an X.509 certificate chain file in PEM format.nullto use the system defaulttrustManagerFactory- theTrustManagerFactorythat provides theTrustManagers that verifies the certificates sent from servers.nullto use the default.ciphers- the cipher suites to enable, in the order of preference.nullto use the default cipher suites.nextProtocols- the application layer protocols to accept, in the order of preference.nullto disable TLS NPN/ALPN extension.sessionCacheSize- the size of the cache used for storing SSL session objects.0to use the default value.sessionTimeout- the timeout for the cached SSL session objects, in seconds.0to use the default value.- Returns:
- a new client-side
SslContext - Throws:
SSLException
-
newClientContext
Creates a new client-sideSslContext.- Parameters:
provider- theSslContextimplementation to use.nullto use the current default one.- Returns:
- a new client-side
SslContext - Throws:
SSLException
-
newClientContext
public static SslContext newClientContext(SslProvider provider, File certChainFile) throws SSLException Creates a new client-sideSslContext.- Parameters:
provider- theSslContextimplementation to use.nullto use the current default one.certChainFile- an X.509 certificate chain file in PEM format.nullto use the system default- Returns:
- a new client-side
SslContext - Throws:
SSLException
-
newClientContext
public static SslContext newClientContext(SslProvider provider, TrustManagerFactory trustManagerFactory) throws SSLException Creates a new client-sideSslContext.- Parameters:
provider- theSslContextimplementation to use.nullto use the current default one.trustManagerFactory- theTrustManagerFactorythat provides theTrustManagers that verifies the certificates sent from servers.nullto use the default.- Returns:
- a new client-side
SslContext - Throws:
SSLException
-
newClientContext
public static SslContext newClientContext(SslProvider provider, File certChainFile, TrustManagerFactory trustManagerFactory) throws SSLException Creates a new client-sideSslContext.- Parameters:
provider- theSslContextimplementation to use.nullto use the current default one.certChainFile- an X.509 certificate chain file in PEM format.nullto use the system defaulttrustManagerFactory- theTrustManagerFactorythat provides theTrustManagers that verifies the certificates sent from servers.nullto use the default.- Returns:
- a new client-side
SslContext - Throws:
SSLException
-
newClientContext
public static SslContext newClientContext(SslProvider provider, SslBufferPool bufPool, File certChainFile, TrustManagerFactory trustManagerFactory, Iterable<String> ciphers, Iterable<String> nextProtocols, long sessionCacheSize, long sessionTimeout) throws SSLException Creates a new client-sideSslContext.- Parameters:
provider- theSslContextimplementation to use.nullto use the current default one.bufPool- the buffer pool which will be used by the returnedSslContext.nullto use the default buffer pool.certChainFile- an X.509 certificate chain file in PEM format.nullto use the system defaulttrustManagerFactory- theTrustManagerFactorythat provides theTrustManagers that verifies the certificates sent from servers.nullto use the default.ciphers- the cipher suites to enable, in the order of preference.nullto use the default cipher suites.nextProtocols- the application layer protocols to accept, in the order of preference.nullto disable TLS NPN/ALPN extension.sessionCacheSize- the size of the cache used for storing SSL session objects.0to use the default value.sessionTimeout- the timeout for the cached SSL session objects, in seconds.0to use the default value.- Returns:
- a new client-side
SslContext - Throws:
SSLException
-
newBufferPool
SslBufferPool newBufferPool() -
isServer
public final boolean isServer()Returnstrueif and only if this context is for server-side. -
bufferPool
-
isClient
public abstract boolean isClient()Returns thetrueif and only if this context is for client-side. -
cipherSuites
Returns the list of enabled cipher suites, in the order of preference. -
sessionCacheSize
public abstract long sessionCacheSize()Returns the size of the cache used for storing SSL session objects. -
sessionTimeout
public abstract long sessionTimeout()Returns the timeout for the cached SSL session objects, in seconds. -
nextProtocols
Returns the list of application layer protocols for the TLS NPN/ALPN extension, in the order of preference.- Returns:
- the list of application layer protocols.
nullif NPN/ALPN extension has been disabled.
-
newEngine
Creates a newSSLEngine.- Returns:
- a new
SSLEngine
-
newEngine
Creates a newSSLEngineusing advisory peer information.- Parameters:
peerHost- the non-authoritative name of the hostpeerPort- the non-authoritative port- Returns:
- a new
SSLEngine
-
newHandler
Creates a newSslHandler.- Returns:
- a new
SslHandler
-
newHandler
Creates a newSslHandlerwith advisory peer information.- Parameters:
peerHost- the non-authoritative name of the hostpeerPort- the non-authoritative port- Returns:
- a new
SslHandler
-
newHandler
-