diff --git a/mistralclient/api/client.py b/mistralclient/api/client.py
index 761257d4..40083578 100644
--- a/mistralclient/api/client.py
+++ b/mistralclient/api/client.py
@@ -20,7 +20,7 @@ from mistralclient.api.v2 import client as client_v2
 def client(mistral_url=None, username=None, api_key=None,
            project_name=None, auth_url=None, project_id=None,
            endpoint_type='publicURL', service_type='workflow',
-           auth_token=None, user_id=None, cacert=None):
+           auth_token=None, user_id=None, cacert=None, insecure=False):
 
         if mistral_url and not isinstance(mistral_url, six.string_types):
             raise RuntimeError('Mistral url should be a string.')
@@ -36,7 +36,8 @@ def client(mistral_url=None, username=None, api_key=None,
             service_type=service_type,
             auth_token=auth_token,
             user_id=user_id,
-            cacert=cacert
+            cacert=cacert,
+            insecure=insecure
         )
 
 
diff --git a/mistralclient/api/v2/client.py b/mistralclient/api/v2/client.py
index 6e92c15f..a2d55c16 100644
--- a/mistralclient/api/v2/client.py
+++ b/mistralclient/api/v2/client.py
@@ -31,25 +31,39 @@ class Client(object):
     def __init__(self, mistral_url=None, username=None, api_key=None,
                  project_name=None, auth_url=None, project_id=None,
                  endpoint_type='publicURL', service_type='workflowv2',
-                 auth_token=None, user_id=None, cacert=None):
+                 auth_token=None, user_id=None, cacert=None, insecure=False):
 
         if mistral_url and not isinstance(mistral_url, six.string_types):
             raise RuntimeError('Mistral url should be string')
 
         if auth_url:
             (mistral_url, auth_token, project_id, user_id) = (
-                self.authenticate(mistral_url, username, api_key,
-                                  project_name, auth_url, project_id,
-                                  endpoint_type, service_type, auth_token,
-                                  user_id, cacert))
+                self.authenticate(
+                    mistral_url,
+                    username,
+                    api_key,
+                    project_name,
+                    auth_url,
+                    project_id,
+                    endpoint_type,
+                    service_type,
+                    auth_token,
+                    user_id,
+                    cacert,
+                    insecure
+                )
+            )
 
         if not mistral_url:
             mistral_url = "http://localhost:8989/v2"
 
-        self.http_client = httpclient.HTTPClient(mistral_url,
-                                                 auth_token,
-                                                 project_id,
-                                                 user_id)
+        self.http_client = httpclient.HTTPClient(
+            mistral_url,
+            auth_token,
+            project_id,
+            user_id
+        )
+
         # Create all resource managers.
         self.workbooks = workbooks.WorkbookManager(self)
         self.executions = executions.ExecutionManager(self)
@@ -64,15 +78,18 @@ class Client(object):
     def authenticate(self, mistral_url=None, username=None, api_key=None,
                      project_name=None, auth_url=None, project_id=None,
                      endpoint_type='publicURL', service_type='workflowv2',
-                     auth_token=None, user_id=None, cacert=None):
+                     auth_token=None, user_id=None, cacert=None,
+                     insecure=False):
 
         if project_name and project_id:
-            raise RuntimeError('Only project name or '
-                               'project id should be set')
+            raise RuntimeError(
+                'Only project name or project id should be set'
+            )
 
         if username and user_id:
-            raise RuntimeError('Only user name or user id'
-                               ' should be set')
+            raise RuntimeError(
+                'Only user name or user id should be set'
+            )
 
         keystone_client = _get_keystone_client(auth_url)
 
@@ -85,7 +102,9 @@ class Client(object):
             tenant_name=project_name,
             auth_url=auth_url,
             endpoint=auth_url,
-            cacert=cacert)
+            cacert=cacert,
+            insecure=insecure
+        )
 
         keystone.authenticate()
         token = keystone.auth_token
diff --git a/mistralclient/shell.py b/mistralclient/shell.py
index b114d7ff..c81afc4c 100644
--- a/mistralclient/shell.py
+++ b/mistralclient/shell.py
@@ -43,8 +43,12 @@ LOG = logging.getLogger(__name__)
 class OpenStackHelpFormatter(argparse.HelpFormatter):
     def __init__(self, prog, indent_increment=2, max_help_position=32,
                  width=None):
-        super(OpenStackHelpFormatter, self).__init__(prog, indent_increment,
-                                                     max_help_position, width)
+        super(OpenStackHelpFormatter, self).__init__(
+            prog,
+            indent_increment,
+            max_help_position,
+            width
+        )
 
     def start_section(self, heading):
         # Title-case the headings.
@@ -114,8 +118,10 @@ class MistralShell(app.App):
         log_lvl = logging.DEBUG if self.options.debug else logging.WARNING
         logging.basicConfig(
             format="%(levelname)s (%(module)s) %(message)s",
-            level=log_lvl)
+            level=log_lvl
+        )
         logging.getLogger('iso8601').setLevel(logging.WARNING)
+
         if self.options.verbose_level <= 1:
             logging.getLogger('requests').setLevel(logging.WARNING)
 
@@ -262,6 +268,14 @@ class MistralShell(app.App):
             default=c.env('OS_CACERT'),
             help='Authentication CA Certificate (Env: OS_CACERT)'
         )
+        parser.add_argument(
+            '--insecure',
+            action='store_true',
+            dest='insecure',
+            default=c.env('MISTRALCLIENT_INSECURE', default=False),
+            help='Disables SSL/TLS certificate verification '
+                 '(Env: MISTRALCLIENT_INSECURE)'
+        )
         return parser
 
     def initialize_app(self, argv):
@@ -284,16 +298,19 @@ class MistralShell(app.App):
         if do_help or ('bash-completion' in argv):
             self.options.auth_url = None
 
-        self.client = client.client(mistral_url=self.options.mistral_url,
-                                    username=self.options.username,
-                                    api_key=self.options.password,
-                                    project_name=self.options.tenant_name,
-                                    auth_url=self.options.auth_url,
-                                    project_id=self.options.tenant_id,
-                                    endpoint_type=self.options.endpoint_type,
-                                    service_type=self.options.service_type,
-                                    auth_token=self.options.token,
-                                    cacert=self.options.cacert)
+        self.client = client.client(
+            mistral_url=self.options.mistral_url,
+            username=self.options.username,
+            api_key=self.options.password,
+            project_name=self.options.tenant_name,
+            auth_url=self.options.auth_url,
+            project_id=self.options.tenant_id,
+            endpoint_type=self.options.endpoint_type,
+            service_type=self.options.service_type,
+            auth_token=self.options.token,
+            cacert=self.options.cacert,
+            insecure=self.options.insecure
+        )
 
     def _set_shell_commands(self, cmds_dict):
         for k, v in cmds_dict.items():