diff --git a/ChangeLog.md b/ChangeLog.md
new file mode 100644
--- /dev/null
+++ b/ChangeLog.md
@@ -0,0 +1,3 @@
+## 1.1.1
+
+* Support chain certificates in network-conduit-tls [#203](https://github.com/snoyberg/conduit/pull/203)
diff --git a/Data/Conduit/Network/TLS.hs b/Data/Conduit/Network/TLS.hs
--- a/Data/Conduit/Network/TLS.hs
+++ b/Data/Conduit/Network/TLS.hs
@@ -9,6 +9,8 @@
       TLSConfig
     , tlsConfigBS
     , tlsConfig
+    , tlsConfigChainBS
+    , tlsConfigChain
     , tlsHost
     , tlsPort
 --    , tlsCertificate
@@ -58,19 +60,24 @@
 import Data.Default
 
 
-makeCertDataPath :: FilePath -> FilePath -> TlsCertData
-makeCertDataPath certPath keyPath = TlsCertData (readFile certPath) (readFile keyPath)
-
-makeCertDataBS :: S.ByteString -> S.ByteString -> TlsCertData
-makeCertDataBS certBS keyBS = TlsCertData (return certBS) (return keyBS)
+makeCertDataPath :: FilePath -> [FilePath] -> FilePath -> TlsCertData
+makeCertDataPath certPath chainCertPaths keyPath =
+    TlsCertData
+      (readFile certPath)
+      (mapM readFile chainCertPaths)
+      (readFile keyPath)
 
+makeCertDataBS :: S.ByteString -> [S.ByteString] -> S.ByteString ->
+                  TlsCertData
+makeCertDataBS certBS chainCertsBS keyBS =
+    TlsCertData (return certBS) (return chainCertsBS) (return keyBS)
 
 tlsConfig :: HostPreference
           -> Int -- ^ port
           -> FilePath -- ^ certificate
           -> FilePath -- ^ key
           -> TLSConfig
-tlsConfig a b c d = TLSConfig a b (makeCertDataPath c d) False
+tlsConfig a b c d = tlsConfigChain a b c [] d
 
 
 -- | allow to build a server config directly from raw bytestring data (exact same
@@ -81,9 +88,31 @@
             -> S.ByteString -- ^ Certificate raw data
             -> S.ByteString -- ^ Key file raw data
             -> TLSConfig
-tlsConfigBS a b c d = TLSConfig a b (makeCertDataBS c d ) False
+tlsConfigBS a b c d = tlsConfigChainBS a b c [] d
 
+-- | Like 'tlsConfig', but also allow specifying chain certificates.
+--
+-- Since 1.1.1
+tlsConfigChain :: HostPreference
+               -> Int -- ^ Port
+               -> FilePath -- ^ Certificate
+               -> [FilePath] -- ^ Chain certificates
+               -> FilePath -- ^ Key
+               -> TLSConfig
+tlsConfigChain a b c d e = TLSConfig a b (makeCertDataPath c d e) False
 
+
+-- | Like 'tlsConfigBS', but also allow specifying chain certificates.
+--
+-- Since 1.1.1
+tlsConfigChainBS :: HostPreference
+                 -> Int          -- ^ Port
+                 -> S.ByteString -- ^ Certificate raw data
+                 -> [S.ByteString] -- ^ Chain certificate raw data
+                 -> S.ByteString -- ^ Key file raw data
+                 -> TLSConfig
+tlsConfigChainBS a b c d e = TLSConfig a b (makeCertDataBS c d e) False
+
 serverHandshake :: Socket -> TLS.Credentials -> IO (TLS.Context)
 serverHandshake socket creds = do
     gen <- Crypto.Random.AESCtr.makeSystem
@@ -210,8 +239,8 @@
     ]
 
 readCreds :: TlsCertData -> IO TLS.Credentials
-readCreds (TlsCertData iocert iokey) =
-    (TLS.credentialLoadX509FromMemory <$> iocert <*> iokey)
+readCreds (TlsCertData iocert iochains iokey) =
+    (TLS.credentialLoadX509ChainFromMemory <$> iocert <*> iochains <*> iokey)
     >>= either
         (error . ("Error reading TLS credentials: " ++))
         (return . TLS.Credentials . return)
diff --git a/Data/Conduit/Network/TLS/Internal.hs b/Data/Conduit/Network/TLS/Internal.hs
--- a/Data/Conduit/Network/TLS/Internal.hs
+++ b/Data/Conduit/Network/TLS/Internal.hs
@@ -10,6 +10,7 @@
 
 -- structure providing access to certificate and key data through call backs 
 data TlsCertData = TlsCertData { getTLSCert :: IO S.ByteString
+                               , getTLSChainCerts :: IO [S.ByteString]
                                , getTLSKey :: IO S.ByteString }
 
 
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,3 @@
+## network-conduit-tls
+
+Create TLS-aware network code with conduits. Uses the tls package for a pure-Haskell implementation.
diff --git a/network-conduit-tls.cabal b/network-conduit-tls.cabal
--- a/network-conduit-tls.cabal
+++ b/network-conduit-tls.cabal
@@ -1,5 +1,5 @@
 name:                network-conduit-tls
-version:             1.1.0.2
+version:             1.1.1
 synopsis:            Create TLS-aware network code with conduits
 description:         Uses the tls package for a pure-Haskell implementation.
 homepage:            https://github.com/snoyberg/conduit
@@ -10,6 +10,7 @@
 category:            Network
 build-type:          Simple
 cabal-version:       >=1.8
+extra-source-files:  README.md ChangeLog.md
 
 library
   exposed-modules:    Data.Conduit.Network.TLS
@@ -18,7 +19,7 @@
                     , system-filepath >= 0.4
                     , system-fileio   >= 0.3
                     , bytestring      >= 0.9
-                    , tls             >= 1.2.2
+                    , tls             >= 1.2.15
                     , conduit-extra   >= 1.1
                     , conduit         >= 1.1
                     , network
