diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,8 @@
+## 0.3.1.0
+* Fix a bug with http-proxy that would cause SNI to be set incorrectly; (would
+  use the domain of the proxy, instead of the server we're trying to reach
+  _through_ the proxy)
+
 ## 0.3.0.0
 
 * Wrap HsOpenSSL specific exceptions into http-clients own `HttpExceptionRequest`. This is a breaking change and might need adjustment with respect to exception handling in user code.
diff --git a/Network/HTTP/Client/OpenSSL.hs b/Network/HTTP/Client/OpenSSL.hs
--- a/Network/HTTP/Client/OpenSSL.hs
+++ b/Network/HTTP/Client/OpenSSL.hs
@@ -43,12 +43,12 @@
                     SSL.setTlsextHostName ssl host'
                     SSL.connect ssl
                     makeConnection
-                        (SSL.read ssl 32752 `catch` \(_ :: SSL.ConnectionAbruptlyTerminated) -> pure S.empty)
+                        (SSL.read ssl 32752 `catch` \(_ :: SSL.ConnectionAbruptlyTerminated) -> return S.empty)
                         (SSL.write ssl)
                         (N.close sock)
     , managerTlsProxyConnection = do
         ctx <- mkContext
-        return $ \connstr checkConn _serverName _ha host' port' -> do
+        return $ \connstr checkConn serverName _ha host' port' -> do
             -- Copied/modified from openssl-streams
             let hints      = N.defaultHints
                                 { N.addrFlags      = [N.AI_ADDRCONFIG, N.AI_NUMERICSERV]
@@ -72,10 +72,10 @@
                     connectionWrite conn connstr
                     checkConn conn
                     ssl <- SSL.connection ctx sock
-                    SSL.setTlsextHostName ssl host'
+                    SSL.setTlsextHostName ssl serverName
                     SSL.connect ssl
                     makeConnection
-                        (SSL.read ssl 32752 `catch` \(_ :: SSL.ConnectionAbruptlyTerminated) -> pure S.empty)
+                        (SSL.read ssl 32752 `catch` \(_ :: SSL.ConnectionAbruptlyTerminated) -> return S.empty)
                         (SSL.write ssl)
                         (N.close sock)
 
diff --git a/http-client-openssl.cabal b/http-client-openssl.cabal
--- a/http-client-openssl.cabal
+++ b/http-client-openssl.cabal
@@ -1,5 +1,5 @@
 name:                http-client-openssl
-version:             0.3.0.0
+version:             0.3.1.0
 synopsis:            http-client backend using the OpenSSL library.
 description:         Hackage documentation generation is not reliable. For up to date documentation, please see: <http://www.stackage.org/package/http-client>.
 homepage:            https://github.com/snoyberg/http-client
@@ -19,11 +19,11 @@
 library
   exposed-modules:     Network.HTTP.Client.OpenSSL
   other-extensions:    ScopedTypeVariables
-  build-depends:       base >= 4 && < 5
+  build-depends:       base >= 4.10 && < 5
                      , bytestring
                      , http-client >= 0.2
                      , network
-                     , HsOpenSSL
+                     , HsOpenSSL >= 0.11.2.0
   default-language:    Haskell2010
 
 test-suite spec
