diff --git a/tempest/common/utils/data_utils.py b/tempest/common/utils/data_utils.py
index 3fdf370..7aed1e1 100644
--- a/tempest/common/utils/data_utils.py
+++ b/tempest/common/utils/data_utils.py
@@ -6,10 +6,10 @@
     return name + str(random.randint(1, 99999999999))
 
 
-def build_url(host, port, apiVer=None, path=None, params=None, https=False):
+def build_url(host, port, apiVer=None, path=None, params=None, use_ssl=False):
     """Build the request URL from given host, port, path and parameters"""
 
-    if https:
+    if use_ssl:
         url = "https://" + host
     else:
         url = "http://" + host
diff --git a/tempest/config.py b/tempest/config.py
index 4b90932..0d5a096 100644
--- a/tempest/config.py
+++ b/tempest/config.py
@@ -13,7 +13,7 @@
         """Initialize a Nova-specific configuration object"""
         self.conf = conf
 
-    def get(self, item_name, default_value):
+    def get(self, item_name, default_value=None):
         try:
             return self.conf.get("nova", item_name)
         except (ConfigParser.NoSectionError, ConfigParser.NoOptionError):
@@ -22,7 +22,7 @@
     @property
     def host(self):
         """Host IP for making Nova API requests. Defaults to '127.0.0.1'."""
-        return self.get("host", "127.0.1")
+        return self.get("host", "127.0.0.1")
 
     @property
     def port(self):
@@ -45,7 +45,8 @@
         auth_url = data_utils.build_url(self.host,
                                         self.port,
                                         self.apiVer,
-                                        self.path)
+                                        self.path,
+                                        use_ssl=self.use_ssl)
         return auth_url
 
     def params(self):
@@ -53,6 +54,11 @@
         return self.get("params", "")
 
     @property
+    def use_ssl(self):
+        """Specifies if we are using https."""
+        return bool(self.get("use_ssl", False))
+
+    @property
     def username(self):
         """Username to use for Nova API requests. Defaults to 'admin'."""
         return self.get("user", "admin")
