diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Revision history for http-client-rustls
 
+## 0.0.2.0 -- 24.09.2024
+
+ * Support rustls-0.2
+
 ## 0.0.1.0 -- 06.04.2024
 
  * Support rustls-0.1
diff --git a/http-client-rustls.cabal b/http-client-rustls.cabal
--- a/http-client-rustls.cabal
+++ b/http-client-rustls.cabal
@@ -1,6 +1,6 @@
 cabal-version: 2.4
 name: http-client-rustls
-version: 0.0.1.0
+version: 0.0.2.0
 synopsis: http-client TLS backend using Rustls
 description:
   Make HTTPS connections using [http-client](https://hackage.haskell.org/package/http-client)
@@ -48,9 +48,9 @@
     base >=4.16 && <5,
     bytestring >=0.10 && <0.13,
     http-client ^>=0.7.11,
-    network ^>=3.1,
+    network >=3.1 && <3.3,
     resourcet ^>=1.2 || ^>=1.3,
-    rustls ^>=0.1,
+    rustls ^>=0.2,
     text >=2.0 && <2.2,
 
 test-suite tasty
diff --git a/src/Network/HTTP/Client/Rustls.hs b/src/Network/HTTP/Client/Rustls.hs
--- a/src/Network/HTTP/Client/Rustls.hs
+++ b/src/Network/HTTP/Client/Rustls.hs
@@ -2,42 +2,24 @@
 -- [http-client](https://hackage.haskell.org/package/http-client) and
 -- [Rustls](https://github.com/rustls/rustls).
 --
--- >>> import qualified Rustls
 -- >>> import qualified Network.HTTP.Client as HTTP
--- >>> :{
--- newRustlsManager :: IO HTTP.Manager
--- newRustlsManager = do
---   clientConfig <-
---     Rustls.buildClientConfig $
---       Rustls.defaultClientConfigBuilder serverCertVerifier
---   HTTP.newManager $ rustlsManagerSettings clientConfig
---   where
---     -- For now, rustls-ffi does not provide a built-in way to access
---     -- the OS certificate store.
---     serverCertVerifier =
---       Rustls.ServerCertVerifier
---         { Rustls.serverCertVerifierCertificates =
---             pure $
---               Rustls.PemCertificatesFromFile
---                 "/etc/ssl/certs/ca-certificates.crt"
---                 Rustls.PEMCertificateParsingStrict,
---           Rustls.serverCertVerifierCRLs = []
---         }
--- >>> :}
---
+-- >>> import qualified Network.HTTP.Client.Rustls as HTTP
 -- >>> :{
+-- example :: IO ()
 -- example = do
---   mgr <- newRustlsManager -- this should be shared across multiple requests
+--   mgr <- HTTP.newRustlsManager -- this should be shared across multiple requests
 --   req <- HTTP.parseUrlThrow "https://example.org"
 --   res <- HTTP.httpLbs req mgr
 --   print $ HTTP.responseBody res
 -- :}
 module Network.HTTP.Client.Rustls
-  ( rustlsManagerSettings,
+  ( newRustlsManager,
+    rustlsManagerSettings,
   )
 where
 
 import Control.Exception qualified as E
+import Control.Monad.IO.Class (MonadIO (..))
 import Data.Acquire (ReleaseType (..))
 import Data.Acquire.Internal (Acquire (..), Allocated (..))
 import Data.ByteString.Builder.Extra qualified as B
@@ -46,6 +28,13 @@
 import Network.HTTP.Client.Internal qualified as HTTP
 import Network.Socket qualified as NS
 import Rustls qualified
+
+-- | Create a new 'HTTP.Manager' using good TLS defaults and the OS certificate
+-- store.
+newRustlsManager :: (MonadIO m) => m HTTP.Manager
+newRustlsManager = liftIO do
+  clientConfig <- Rustls.buildClientConfig =<< Rustls.defaultClientConfigBuilder
+  HTTP.newManager $ rustlsManagerSettings clientConfig
 
 -- | Get TLS-enabled HTTP 'HTTP.ManagerSettings' from a Rustls
 -- 'Rustls.ClientConfig', consumable via 'HTTP.newManager'.
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -62,19 +62,21 @@
 
           let cp = Process.proc "minica" ["-domains", "example.org"]
           _ <- Process.readCreateProcess (cp {Process.cwd = Just tmpDir}) ""
+          builder <- Rustls.defaultClientConfigBuilder
           mgr <-
             HTTP.newManager . rustlsManagerSettings
               =<< Rustls.buildClientConfig
-                ( Rustls.defaultClientConfigBuilder
-                    Rustls.ServerCertVerifier
-                      { Rustls.serverCertVerifierCertificates =
-                          pure $
-                            Rustls.PemCertificatesFromFile
-                              (tmpDir </> "minica.pem")
-                              Rustls.PEMCertificateParsingStrict,
-                        Rustls.serverCertVerifierCRLs = []
-                      }
-                )
+                builder
+                  { Rustls.clientConfigServerCertVerifier =
+                      Rustls.ServerCertVerifier
+                        { Rustls.serverCertVerifierCertificates =
+                            pure $
+                              Rustls.PemCertificatesFromFile
+                                (tmpDir </> "minica.pem")
+                                Rustls.PEMCertificateParsingStrict,
+                          Rustls.serverCertVerifierCRLs = []
+                        }
+                  }
           B.writeFile (tmpDir </> "file") $ B.replicate fileLength fileByte
           procInfo <-
             Process.createProcess $
