Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Helpers for setting up a tls connection with tls
package,
for further customization, please refer to tls
package.
Note, functions in this module will throw error if can't load certificates or CA store.
Synopsis
- data TrustedCAStore
- makeClientParams :: TrustedCAStore -> IO ClientParams
- makeClientParams' :: FilePath -> [FilePath] -> FilePath -> TrustedCAStore -> IO ClientParams
- makeServerParams :: FilePath -> [FilePath] -> FilePath -> IO ServerParams
- makeServerParams' :: FilePath -> [FilePath] -> FilePath -> TrustedCAStore -> IO ServerParams
- mozillaCAStorePath :: IO FilePath
Choose a CAStore
data TrustedCAStore Source #
The whole point of TLS is that: a peer should have already trusted
some certificates, which can be used for validating other peer's certificates.
if the certificates sent by other side form a chain. and one of them is issued
by one of TrustedCAStore
, Then the peer will be trusted.
SystemCAStore | provided by your operating system. |
MozillaCAStore | provided by Mozilla. |
CustomCAStore FilePath | provided by your self, the CA file can contain multiple certificates. |
Instances
Show TrustedCAStore Source # | |
Defined in Data.TLSSetting showsPrec :: Int -> TrustedCAStore -> ShowS # show :: TrustedCAStore -> String # showList :: [TrustedCAStore] -> ShowS # | |
Eq TrustedCAStore Source # | |
Defined in Data.TLSSetting (==) :: TrustedCAStore -> TrustedCAStore -> Bool # (/=) :: TrustedCAStore -> TrustedCAStore -> Bool # |
Make TLS settings
:: TrustedCAStore | trusted certificates. |
-> IO ClientParams |
make a simple tls ClientParams
that will validate server and use tls connection
without providing client's own certificate. suitable for connecting server which don't
validate clients.
we defer setting of clientServerIdentification
to connecting phase.
Note, tls's default validating method require server has v3 certificate.
you can use openssl's V3 extension to issue such a certificate. or change ClientParams
before connecting.
:: FilePath | public certificate (X.509 format). |
-> [FilePath] | chain certificates (X.509 format). the root of your certificate chain should be already trusted by server, or tls will fail. |
-> FilePath | private key associated. |
-> TrustedCAStore | trusted certificates. |
-> IO ClientParams |
make a simple tls ClientParams
that will validate server and use tls connection
while providing client's own certificate as well. suitable for connecting server which
validate clients.
Also only accept v3 certificate.
:: FilePath | public certificate (X.509 format). |
-> [FilePath] | chain certificates (X.509 format). the root of your certificate chain should be already trusted by client, or tls will fail. |
-> FilePath | private key associated. |
-> IO ServerParams |
make a simple tls ServerParams
without validating client's certificate.
:: FilePath | public certificate (X.509 format). |
-> [FilePath] | chain certificates (X.509 format). |
-> FilePath | private key associated. |
-> TrustedCAStore | server will use these certificates to validate clients. |
-> IO ServerParams |
make a tls ServerParams
that also validating client's certificate.
Internal
mozillaCAStorePath :: IO FilePath Source #
Get the built-in mozilla CA's path.