diff --git a/tools/upip.py b/tools/upip.py
index 7b85c718f2eb439b9d0033cd34695313565444a7..411da49e8cd8ee7734864504d9a39ab6a4032c73 100644
--- a/tools/upip.py
+++ b/tools/upip.py
@@ -122,7 +122,7 @@ def url_open(url):
         s.connect(addr)
 
         if proto == "https:":
-            s = ussl.wrap_socket(s)
+            s = ussl.wrap_socket(s, server_hostname=host)
             if warn_ussl:
                 print("Warning: %s SSL certificate is not validated" % host)
                 warn_ussl = False
diff --git a/tools/upip_utarfile.py b/tools/upip_utarfile.py
index 65ce0bdca87ec9a23c66e799b2fa7abb95e2dcea..460ca2cd44f30c6234d99ad2465165a6d2b0fd9b 100644
--- a/tools/upip_utarfile.py
+++ b/tools/upip_utarfile.py
@@ -3,7 +3,7 @@ import uctypes
 # http://www.gnu.org/software/tar/manual/html_node/Standard.html
 TAR_HEADER = {
     "name": (uctypes.ARRAY | 0, uctypes.UINT8 | 100),
-    "size": (uctypes.ARRAY | 124, uctypes.UINT8 | 12),
+    "size": (uctypes.ARRAY | 124, uctypes.UINT8 | 11),
 }
 
 DIRTYPE = "dir"
@@ -75,8 +75,8 @@ class TarFile:
                 return None
 
             d = TarInfo()
-            d.name = str(h.name, "utf-8").rstrip()
-            d.size = int(bytes(h.size).rstrip(), 8)
+            d.name = str(h.name, "utf-8").rstrip("\0")
+            d.size = int(bytes(h.size), 8)
             d.type = [REGTYPE, DIRTYPE][d.name[-1] == "/"]
             self.subf = d.subf = FileSection(self.f, d.size, roundup(d.size, 512))
             return d