| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
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
- runTLS :: TLSSettings -> Settings -> Application -> IO ()
 - runTLSSocket :: TLSSettings -> Settings -> Socket -> Application -> IO ()
 - data TLSSettings
 - defaultTlsSettings :: TLSSettings
 - tlsSettings :: FilePath -> FilePath -> TLSSettings
 - tlsSettingsChain :: FilePath -> [FilePath] -> FilePath -> TLSSettings
 - tlsSettingsMemory :: ByteString -> ByteString -> TLSSettings
 - tlsSettingsChainMemory :: ByteString -> [ByteString] -> ByteString -> TLSSettings
 - tlsSettingsRef :: IORef ByteString -> IORef ByteString -> TLSSettings
 - tlsSettingsChainRef :: IORef ByteString -> [IORef ByteString] -> IORef ByteString -> TLSSettings
 - data CertSettings
 - tlsCredentials :: TLSSettings -> Maybe Credentials
 - tlsLogging :: TLSSettings -> Logging
 - tlsAllowedVersions :: TLSSettings -> [Version]
 - tlsCiphers :: TLSSettings -> [Cipher]
 - tlsWantClientCert :: TLSSettings -> Bool
 - tlsServerHooks :: TLSSettings -> ServerHooks
 - tlsServerDHEParams :: TLSSettings -> Maybe DHParams
 - tlsSessionManagerConfig :: TLSSettings -> Maybe Config
 - tlsSessionManager :: TLSSettings -> Maybe SessionManager
 - onInsecure :: TLSSettings -> OnInsecure
 - data OnInsecure
 - data WarpTLSException
 - attachConn :: SockAddr -> Context -> IO (Connection, Transport)
 
Runner
runTLS :: TLSSettings -> Settings -> Application -> IO () Source #
Running Application with TLSSettings and Settings.
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
Arguments
| :: FilePath | Certificate file  | 
| -> FilePath | Key file  | 
| -> TLSSettings | 
A smart constructor for TLSSettings based on defaultTlsSettings.
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
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
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
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
| Show CertSettings Source # | |
Defined in Network.Wai.Handler.WarpTLS.Internal Methods showsPrec :: Int -> CertSettings -> ShowS # show :: CertSettings -> String # showList :: [CertSettings] -> ShowS #  | |
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 #
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 defaultTlsSettingsFalse
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 defaultTlsSettingsDenyInsecure "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.
Constructors
| DenyInsecure ByteString | |
| AllowInsecure | 
Instances
| Show OnInsecure Source # | |
Defined in Network.Wai.Handler.WarpTLS.Internal Methods showsPrec :: Int -> OnInsecure -> ShowS # show :: OnInsecure -> String # showList :: [OnInsecure] -> ShowS #  | |
Exception
data WarpTLSException Source #
Instances
| Exception WarpTLSException Source # | |
Defined in Network.Wai.Handler.WarpTLS Methods toException :: WarpTLSException -> SomeException #  | |
| Show WarpTLSException Source # | |
Defined in Network.Wai.Handler.WarpTLS Methods showsPrec :: Int -> WarpTLSException -> ShowS # show :: WarpTLSException -> String # showList :: [WarpTLSException] -> ShowS #  | |
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