diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 3.0.4.2
+
+* tls 1.3 support [#390](https://github.com/yesodweb/wai/issues/390)
+
 ## 3.0.4.1
 
 * Fix for leaked FDs [#378](https://github.com/yesodweb/wai/issues/378)
diff --git a/Network/Wai/Handler/WarpTLS.hs b/Network/Wai/Handler/WarpTLS.hs
--- a/Network/Wai/Handler/WarpTLS.hs
+++ b/Network/Wai/Handler/WarpTLS.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE RankNTypes #-}
 {-# LANGUAGE RecordWildCards #-}
@@ -266,8 +267,12 @@
 
 httpOverTls :: TLS.TLSParams params => TLSSettings -> Socket -> I.IORef B.ByteString -> params -> IO (Connection, Transport)
 httpOverTls TLSSettings{..} s cachedRef params = do
+#if MIN_VERSION_tls(1,3,0)
+    ctx <- TLS.contextNew backend params
+#else
     gen <- Crypto.Random.AESCtr.makeSystem
     ctx <- TLS.contextNew backend params gen
+#endif
     TLS.contextHookSetLogging ctx tlsLogging
     TLS.handshake ctx
     readBuf <- allocateBuffer bufferSize
diff --git a/warp-tls.cabal b/warp-tls.cabal
--- a/warp-tls.cabal
+++ b/warp-tls.cabal
@@ -1,5 +1,5 @@
 Name:                warp-tls
-Version:             3.0.4.1
+Version:             3.0.4.2
 Synopsis:            HTTP over SSL/TLS support for Warp via the TLS package
 License:             MIT
 License-file:        LICENSE
