diff --git a/server/src/com/cloud/api/commands/UpdateCertificateCmd.java b/server/src/com/cloud/api/commands/UpdateCertificateCmd.java
new file mode 100644
index 00000000000..6f46a5616f9
--- /dev/null
+++ b/server/src/com/cloud/api/commands/UpdateCertificateCmd.java
@@ -0,0 +1,78 @@
+/**
+ * Copyright (C) 2010 Cloud.com, Inc. All rights reserved.
+ *
+ * This software is licensed under the GNU General Public License v3 or later.
+ *
+ * It is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or any later version.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ */
+
+package com.cloud.api.commands;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+
+import com.cloud.api.BaseCmd;
+import com.cloud.api.ServerApiException;
+import com.cloud.user.Account;
+import com.cloud.utils.Pair;
+
+public class UpdateCertificateCmd extends BaseCmd {
+ public static final Logger s_logger = Logger.getLogger(AddConfigCmd.class.getName());
+
+ private static final String s_name = "updatecertificateresponse";
+ private static final List> s_properties = new ArrayList>();
+
+ static {
+ s_properties.add(new Pair(BaseCmd.Properties.PATH, Boolean.FALSE));
+ }
+ @Override
+ public String getName() {
+ return s_name;
+ }
+
+ @Override
+ public List> getProperties() {
+ return s_properties;
+ }
+
+ @Override
+ public List> execute(Map params) {
+ String instance = (String) params.get(BaseCmd.Properties.INSTANCE.getName());
+ String component = (String) params.get(BaseCmd.Properties.COMPONENT.getName());
+ String category = (String) params.get(BaseCmd.Properties.CATEGORY.getName());
+ String name = (String) params.get(BaseCmd.Properties.NAME.getName());
+ String value = (String) params.get(BaseCmd.Properties.VALUE.getName());
+ String description = (String) params.get(BaseCmd.Properties.DESCRIPTION.getName());
+
+ try
+ {
+ boolean status = getManagementServer().addConfig(instance, component, category, name, value, description);
+ List> returnValues = new ArrayList>();
+
+ if(status)
+ {
+ returnValues.add(new Pair(BaseCmd.Properties.NAME.getName(), name));
+ returnValues.add(new Pair(BaseCmd.Properties.VALUE.getName(), value));
+ }
+
+ return returnValues;
+ }
+ catch (Exception ex) {
+ s_logger.error("Exception adding config value: ", ex);
+ throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to add config value : " + ex.getMessage());
+ }
+
+ }
+}