From 14a1a06dd192590792bf4f5f2e2c64d5ee8beedb Mon Sep 17 00:00:00 2001 From: Olov Karlsson Date: Mon, 1 Dec 2014 22:38:17 +0100 Subject: [PATCH] Corrected the way alternate names from a certificate is extracted and used --- .../SSL/SSLModuleService80.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs80/SSL/SSLModuleService80.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs80/SSL/SSLModuleService80.cs index 1395bde6..3e1a6382 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs80/SSL/SSLModuleService80.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs80/SSL/SSLModuleService80.cs @@ -281,12 +281,15 @@ namespace WebsitePanel.Providers.Web.Iis if (!dedicatedIp) { - hostNames.AddRange(from extension in certificate.Extensions.Cast() where extension.Oid.FriendlyName == "Subject Alternative Name" select extension.Format(true)); + hostNames.AddRange(certificate.Extensions.Cast() + .Where(e => e.Oid.FriendlyName == "Subject Alternative Name") + .Select(e => e.Format(true).Replace("DNS Name=", ""))); } - if (!hostNames.Any()) + var simpleName = certificate.GetNameInfo(X509NameType.SimpleName, false); + if (hostNames.All(h => h != simpleName)) { - hostNames.Add(certificate.GetNameInfo(X509NameType.SimpleName, false)); + hostNames.Add(simpleName); } // For every hostname (only one if using old school dedicated IP binding)