Index: b/eventlet/green/ssl.py
===================================================================
--- a/eventlet/green/ssl.py
+++ b/eventlet/green/ssl.py
@@ -238,14 +238,14 @@ class GreenSSLSocket(__ssl.SSLSocket):
         if self._sslobj:
             raise ValueError("attempt to connect already-connected SSLSocket!")
         self._socket_connect(addr)
-        if has_ciphers:
-            self._sslobj = _ssl.sslwrap(self._sock, False, self.keyfile, self.certfile,
-                                        self.cert_reqs, self.ssl_version,
-                                        self.ca_certs, self.ciphers)
-        else:
-            self._sslobj = _ssl.sslwrap(self._sock, False, self.keyfile, self.certfile,
-                                        self.cert_reqs, self.ssl_version,
-                                        self.ca_certs)
+        ctx = SSLContext(self.ssl_version)
+        if self.keyfile or self.certfile:
+            ctx.load_cert_chain(self.certfile, self.keyfile)
+        if self.ca_certs:
+            ctx.load_verify_locations(self.ca_certs)
+        if has_ciphers and self.ciphers:
+            ctx.set_ciphers(self.ciphers)
+        self._sslobj = ctx._wrap_socket(self._sock, server_side=False)
         if self.do_handshake_on_connect:
             self.do_handshake()
 
