diff --git a/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java b/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java
index 8fdf77f..d834c2e 100644
--- a/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java
+++ b/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java
@@ -2650,4 +2650,14 @@
     }
     return prefix;
   }
+
+  public static String extractDomainNameFromFQDN(String fqdn) {
+    if (fqdn != null) {
+      fqdn = fqdn.trim();
+      if (fqdn.matches("[^\\.]+\\..+")) {
+        fqdn = fqdn.replaceFirst("[^\\.]+\\.", "");
+      }
+    }
+    return fqdn;
+  }
 }
diff --git a/slider-core/src/main/java/org/apache/slider/server/services/security/CertificateManager.java b/slider-core/src/main/java/org/apache/slider/server/services/security/CertificateManager.java
index a642369..187b470 100644
--- a/slider-core/src/main/java/org/apache/slider/server/services/security/CertificateManager.java
+++ b/slider-core/src/main/java/org/apache/slider/server/services/security/CertificateManager.java
@@ -20,6 +20,7 @@
 import com.google.inject.Singleton;
 import org.apache.commons.io.FileUtils;
 import org.apache.slider.common.SliderKeys;
+import org.apache.slider.common.tools.SliderUtils;
 import org.apache.slider.core.conf.MapOperations;
 import org.apache.slider.core.exceptions.SliderException;
 import org.slf4j.Logger;
@@ -473,10 +474,8 @@
   private String getSubjectDN(String hostname, String containerId,
                               String appName) {
     return String.format("/CN=%s%s%s",
-                         hostname,
+                         SliderUtils.extractDomainNameFromFQDN(hostname),
                          containerId != null ? "/OU=" + containerId : "",
                          appName != null ? "/OU=" + appName : "");
-
-
   }
 }
diff --git a/slider-core/src/test/java/org/apache/slider/common/tools/TestSliderUtils.java b/slider-core/src/test/java/org/apache/slider/common/tools/TestSliderUtils.java
index deca7a8..7bf1906 100644
--- a/slider-core/src/test/java/org/apache/slider/common/tools/TestSliderUtils.java
+++ b/slider-core/src/test/java/org/apache/slider/common/tools/TestSliderUtils.java
@@ -173,4 +173,25 @@
     Assert.assertEquals("Should be null", msg,
         SliderUtils.extractFirstLine(msg));
   }
+
+  @Test
+  public void testExtractDomainNameFromFQDN() {
+    String fqdn = "azure-cluster-c0.k4kldeirxsoutbyybgqoiqdsgg.fx.cloudapp.net";
+    Assert.assertEquals("Returned domainname is incorrect",
+        "k4kldeirxsoutbyybgqoiqdsgg.fx.cloudapp.net",
+        SliderUtils.extractDomainNameFromFQDN(fqdn));
+    fqdn = "";
+    Assert.assertEquals("Returned domainname should be empty string", "",
+        SliderUtils.extractDomainNameFromFQDN(fqdn));
+    fqdn = null;
+    Assert.assertEquals("Returned domainname should be null", null,
+        SliderUtils.extractDomainNameFromFQDN(fqdn));
+    fqdn = "azure-cluster-c0";
+    Assert.assertEquals("Returned domainname should be same as fqdn",
+        "azure-cluster-c0", SliderUtils.extractDomainNameFromFQDN(fqdn));
+    // should handle whitespaces as well
+    fqdn = " www.example.com";
+    Assert.assertEquals("Returned domainname is incorrect", "example.com",
+        SliderUtils.extractDomainNameFromFQDN(fqdn));
+  }
 }
