diff --git a/src/main/docker/kibana/backup.py b/src/main/docker/kibana/backup.py
index a2dab22..b1e4518 100755
--- a/src/main/docker/kibana/backup.py
+++ b/src/main/docker/kibana/backup.py
@@ -48,7 +48,7 @@
                               ' matching a configuration item that should be written.'
                               ' Files already in the folder that do not match are'
                               ' left as-is.'))
-    parser.add_argument('-H', '--kibana-host', default='http://localhost:5601',
+    parser.add_argument('-H', '--kibana-host', default='https://localhost:5601',
                         help='Kibana endpoint.')
 
     return parser.parse_args(args)
@@ -68,7 +68,7 @@
 
     # get list of the set of objects we update
     url = "%s/api/saved_objects/_find" % (args.kibana_host.rstrip("/"),)
-    saved_objects_req = requests.get(url,
+    saved_objects_req = requests.get(url, auth=('admin', 'admin'), verify=False,
                                      params={'per_page': PER_PAGE,'type':['config','search','dashboard','visualization','index-pattern']})
 
     saved_objects = saved_objects_req.json()['saved_objects']
diff --git a/src/main/docker/kibana/restore.py b/src/main/docker/kibana/restore.py
index 70f430c..eee2e6b 100755
--- a/src/main/docker/kibana/restore.py
+++ b/src/main/docker/kibana/restore.py
@@ -53,7 +53,7 @@
                               (','.join(OBJECT_TYPES[:-1]), OBJECT_TYPES[-1])
                              )
                        )
-    parser.add_argument('-H', '--kibana-host', default='http://localhost:5601',
+    parser.add_argument('-H', '--kibana-host', default='https://localhost:5601',
                         help='Kibana endpoint.')
     parser.add_argument('-f', '--force', action='store_const',
                         const=True, default=False,
@@ -98,7 +98,7 @@
             logger.info('Restoring %s id:%s (overwrite:%s)', obj_type, obj_id, args.force)
             url = "%s/api/saved_objects/%s/%s" % (args.kibana_host.rstrip("/"), obj_type, obj_id)
             params = {'overwrite': True} if args.force else {}
-            post_object_req = requests.post(url,
+            post_object_req = requests.post(url, auth=('admin', 'admin'), verify=False,
                                             headers={'content-type': 'application/json',
                                                      'kbn-xsrf': 'True'},
                                             params=params,
