diff --git a/ProxHTTPSProxy.py b/ProxHTTPSProxy.py
index c922512..ccdb617 100755
--- a/ProxHTTPSProxy.py
+++ b/ProxHTTPSProxy.py
@@ -5,7 +5,7 @@
 
 _name = 'ProxHTTPSProxyMII'
 __author__ = 'phoenix'
-__version__ = 'v1.4'
+__version__ = 'v1.5'
 
 CONFIG = "config.ini"
 CA_CERTS = "cacert.pem"
@@ -111,7 +111,7 @@ class ConnectionPools:
         scheme = proxy.split(':')[0]
         if scheme in ('http', 'https'):
             ProxyManager = urllib3.ProxyManager
-        elif scheme in ('socks4', 'socks5'):
+        elif scheme in ('socks4', 'socks5','socks5h'):
             ProxyManager = SOCKSProxyManager
         else:
             print("Wrong Proxy Format: " + proxy)
@@ -138,7 +138,7 @@ class FrontRequestHandler(ProxyRequestHandler):
     server_version = "%s FrontProxy/%s" % (_name, __version__)
 
     def do_CONNECT(self):
-        "Descrypt https request and dispatch to http handler"
+        "Decrypt https request and dispatch to http handler"
 
         # request line: CONNECT www.example.com:443 HTTP/1.1
         self.host, self.port = self.path.split(":")
@@ -162,12 +162,13 @@ class FrontRequestHandler(ProxyRequestHandler):
             self.wfile.write(("HTTP/1.1 200 Connection established\r\n" +
                               "Proxy-agent: %s\r\n" % self.version_string() +
                               "\r\n").encode('ascii'))
-            commonname = '.' + self.host.partition('.')[-1] if self.host.count('.') >= 2 else self.host
+#            commonname = '.' + self.host.partition('.')[-1] if self.host.count('.') >= 2 else self.host
+            commonname = self.host
             dummycert = get_cert(commonname)
             # set a flag for do_METHOD
             self.ssltunnel = True
 
-            ssl_sock = ssl.wrap_socket(self.connection, keyfile=dummycert, certfile=dummycert, server_side=True)
+            ssl_sock = ssl.wrap_socket(self.connection, keyfile=dummycert, certfile=dummycert, server_side=True, ciphers="ALL:COMPLEMENTOFALL")
             # Ref: Lib/socketserver.py#StreamRequestHandler.setup()
             self.connection = ssl_sock
             self.rfile = self.connection.makefile('rb', self.rbufsize)
diff --git a/ProxyTool.py b/ProxyTool.py
index 7f2baab..346260d 100755
--- a/ProxyTool.py
+++ b/ProxyTool.py
@@ -97,7 +97,7 @@ class ProxyRequestHandler(BaseHTTPRequestHandler):
         # set a flag for do_METHOD
         self.ssltunnel = True
 
-        ssl_sock = ssl.wrap_socket(self.connection, keyfile=dummycert, certfile=dummycert, server_side=True)
+        ssl_sock = ssl.wrap_socket(self.connection, keyfile=dummycert, certfile=dummycert, server_side=True, ciphers="ALL:COMPLEMENTOFALL")
         # Ref: Lib/socketserver.py#StreamRequestHandler.setup()
         self.connection = ssl_sock
         self.rfile = self.connection.makefile('rb', self.rbufsize)
@@ -216,7 +216,7 @@ class ProxyRequestHandler(BaseHTTPRequestHandler):
 
     def ssl_get_response(self, conn):
         try:
-            server_conn = ssl.wrap_socket(conn, cert_reqs=ssl.CERT_REQUIRED, ca_certs="cacert.pem", ssl_version=ssl.PROTOCOL_TLSv1)
+            server_conn = ssl.wrap_socket(conn, cert_reqs=ssl.CERT_REQUIRED, ca_certs="cacert.pem", ssl_version=ssl.PROTOCOL_TLS, ciphers="ALL:COMPLEMENTOFALL")
             server_conn.sendall(('%s %s HTTP/1.1\r\n' % (self.command, self.path)).encode('ascii'))
             server_conn.sendall(self.headers.as_bytes())
             if self.postdata:
