warp-tls-3.4.7: HTTP over TLS support for Warp via the TLS package
Safe HaskellSafe-Inferred
LanguageHaskell2010

Network.Wai.Handler.WarpTLS

Description

HTTP over TLS support for Warp via the TLS package.

If HTTP/2 is negotiated by ALPN, HTTP/2 over TLS is used. Otherwise HTTP/1.1 over TLS is used.

Support for SSL is now obsoleted.

Synopsis

Runner

runTLSSocket :: TLSSettings -> Settings -> Socket -> Application -> IO () Source #

Running Application with TLSSettings and Settings using specified Socket.

Settings

data TLSSettings Source #

Settings for WarpTLS.

defaultTlsSettings :: TLSSettings Source #

Default TLSSettings. Use this to create TLSSettings with the field record name (aka accessors).

Smart constructors

From files

tlsSettings Source #

Arguments

:: FilePath

Certificate file

-> FilePath

Key file

-> TLSSettings 

A smart constructor for TLSSettings based on defaultTlsSettings.

tlsSettingsChain Source #

Arguments

:: FilePath

Certificate file

-> [FilePath]

Chain certificate files

-> FilePath

Key file

-> TLSSettings 

A smart constructor for TLSSettings that allows specifying chain certificates based on defaultTlsSettings.

Since 3.0.3

From memory

tlsSettingsMemory Source #

Arguments

:: ByteString

Certificate bytes

-> ByteString

Key bytes

-> TLSSettings 

A smart constructor for TLSSettings, but uses in-memory representations of the certificate and key based on defaultTlsSettings.

Since 3.0.1

tlsSettingsChainMemory Source #

Arguments

:: ByteString

Certificate bytes

-> [ByteString]

Chain certificate bytes

-> ByteString

Key bytes

-> TLSSettings 

A smart constructor for TLSSettings, but uses in-memory representations of the certificate and key based on defaultTlsSettings.

Since 3.0.3

From references

tlsSettingsRef Source #

Arguments

:: IORef ByteString

Reference to certificate bytes

-> IORef ByteString

Reference to key bytes

-> TLSSettings 

A smart constructor for TLSSettings, but uses references to in-memory representations of the certificate and key based on defaultTlsSettings.

Since: 3.3.0

tlsSettingsChainRef Source #

Arguments

:: IORef ByteString

Reference to certificate bytes

-> [IORef ByteString]

Reference to chain certificate bytes

-> IORef ByteString

Reference to key bytes

-> TLSSettings 

A smart constructor for TLSSettings, but uses references to in-memory representations of the certificate and key based on defaultTlsSettings.

Since: 3.3.0

data CertSettings Source #

Determines where to load the certificate, chain certificates, and key from.

Instances

Instances details
Show CertSettings Source # 
Instance details

Defined in Network.Wai.Handler.WarpTLS.Internal

Accessors

tlsCredentials :: TLSSettings -> Maybe Credentials Source #

Specifying Credentials directly. If this value is specified, other fields such as certFile are ignored.

Since 3.2.12

tlsLogging :: TLSSettings -> Logging Source #

The level of logging to turn on.

Default: defaultLogging.

Since 1.4.0

tlsAllowedVersions :: TLSSettings -> [Version] Source #

The TLS versions this server accepts.

Since 1.4.2

tlsCiphers :: TLSSettings -> [Cipher] Source #

The TLS ciphers this server accepts.

Since 1.4.2

tlsWantClientCert :: TLSSettings -> Bool Source #

Whether or not to demand a certificate from the client. If this is set to True, you must handle received certificates in a server hook or all connections will fail.

>>> tlsWantClientCert defaultTlsSettings
False

Since 3.0.2

tlsServerHooks :: TLSSettings -> ServerHooks Source #

The server-side hooks called by the tls package, including actions to take when a client certificate is received. See the Network.TLS module for details.

Default: def

Since 3.0.2

tlsServerDHEParams :: TLSSettings -> Maybe DHParams Source #

Configuration for ServerDHEParams more function lives in crypton package

Default: Nothing

Since 3.2.2

tlsSessionManagerConfig :: TLSSettings -> Maybe Config Source #

Configuration for in-memory TLS session manager. If Nothing, noSessionManager is used. Otherwise, an in-memory TLS session manager is created according to Config.

Default: Nothing

Since 3.2.4

tlsSessionManager :: TLSSettings -> Maybe SessionManager Source #

Specifying SessionManager directly. If this value is specified, tlsSessionManagerConfig is ignored.

Since 3.2.12

onInsecure :: TLSSettings -> OnInsecure Source #

Do we allow insecure connections with this server as well?

>>> onInsecure defaultTlsSettings
DenyInsecure "This server only accepts secure HTTPS connections."

Since 1.4.0

data OnInsecure Source #

An action when a plain HTTP comes to HTTP over TLS/SSL port.

Instances

Instances details
Show OnInsecure Source # 
Instance details

Defined in Network.Wai.Handler.WarpTLS.Internal

Exception

Low-level

attachConn :: SockAddr -> Context -> IO (Connection, Transport) Source #

Get Connection and Transport for a TLS connection that is already did the handshake. @since 3.4.7