diff --git a/thalerj/openbmctool.py b/thalerj/openbmctool.py
index 225d97e..25456bb 100755
--- a/thalerj/openbmctool.py
+++ b/thalerj/openbmctool.py
@@ -2686,6 +2686,36 @@
         print("Display complete.")
     return resp.text
 
+def certificateList(host, args, session):
+    """
+         Called by certificate management function.
+         Example:
+         certificate list
+         @param host: string, the hostname or IP address of the bmc
+         @param args: contains additional arguments used by the certificate
+                      list sub command
+         @param session: the active session to use
+    """
+    if not redfishSupportPresent(host, session):
+        return "Not supported";
+
+    httpHeader = {'Content-Type': 'application/octet-stream'}
+    httpHeader.update(xAuthHeader)
+    url = "https://" + host + \
+        "/redfish/v1/CertificateService/CertificateLocations/"
+    try:
+        resp = session.get(url, headers=httpHeader, verify=False)
+    except(requests.exceptions.Timeout):
+        return(connectionErrHandler(args.json, "Timeout", None))
+    except(requests.exceptions.ConnectionError) as err:
+        return connectionErrHandler(args.json, "ConnectionError", err)
+    if resp.status_code != 200:
+        print(resp.text)
+        return "Failed to list certificates"
+    else:
+        print("List certificates complete.")
+    return resp.text
+
 def enableLDAP(host, args, session):
     """
          Called by the ldap function. Configures LDAP.
@@ -4026,6 +4056,10 @@
         help="certificate type to display")
     certDisplay.set_defaults(func=certificateDisplay)
 
+    certList = certMgmt_subproc.add_parser('list',
+        help="Certificate list")
+    certList.set_defaults(func=certificateList)
+
     # local users
     parser_users = subparsers.add_parser("local_users", help="Work with local users")
     parser_users.add_argument('local_users', choices=['disableall','enableall', 'queryenabled'], help="Disable, enable or query local user accounts")
