diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs80/SSL/SSLModuleService80.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs80/SSL/SSLModuleService80.cs index 1395bde6..1ba070aa 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.Value == "2.5.29.17") // Subject Alternative Names + .SelectMany(e => e.Format(true).Split(new[] {"\r\n", "\n", "\n"}, StringSplitOptions.RemoveEmptyEntries).Select(s => s.Split('=')[1]))); } - 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)