aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Startup.Common/ApplicationHost.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2015-01-19 01:42:31 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2015-01-19 01:42:31 -0500
commite8ab7fb7b59ddc66fdd895076cdd4350e0f18576 (patch)
treecb6b7312fd6816b963e931288c464ef152010701 /MediaBrowser.Server.Startup.Common/ApplicationHost.cs
parentdf56b1ec8a008933a9e20d6a3cd9b05580d143eb (diff)
update translations
Diffstat (limited to 'MediaBrowser.Server.Startup.Common/ApplicationHost.cs')
-rw-r--r--MediaBrowser.Server.Startup.Common/ApplicationHost.cs45
1 files changed, 36 insertions, 9 deletions
diff --git a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs
index 4e05bceff6..5ce23fa370 100644
--- a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs
+++ b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs
@@ -2,6 +2,7 @@
using MediaBrowser.Common;
using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.Events;
+using MediaBrowser.Common.Extensions;
using MediaBrowser.Common.Implementations;
using MediaBrowser.Common.Implementations.ScheduledTasks;
using MediaBrowser.Common.IO;
@@ -757,6 +758,8 @@ namespace MediaBrowser.Server.Startup.Common
SyncManager.AddParts(GetExports<ISyncProvider>());
}
+ private string CertificatePath { get; set; }
+
private IEnumerable<string> GetUrlPrefixes()
{
var prefixes = new List<string>
@@ -764,7 +767,7 @@ namespace MediaBrowser.Server.Startup.Common
"http://+:" + ServerConfigurationManager.Configuration.HttpServerPortNumber + "/"
};
- if (!string.IsNullOrWhiteSpace(ServerConfigurationManager.Configuration.CertificatePath))
+ if (!string.IsNullOrWhiteSpace(CertificatePath))
{
prefixes.Add("https://+:" + ServerConfigurationManager.Configuration.HttpsPortNumber + "/");
}
@@ -777,16 +780,36 @@ namespace MediaBrowser.Server.Startup.Common
/// </summary>
private void StartServer()
{
- try
+ if (string.IsNullOrWhiteSpace(ServerConfigurationManager.Configuration.CertificatePath))
{
- if (ServerConfigurationManager.Configuration.EnableHttps)
+ // Generate self-signed cert
+ var certHost = GetHostnameFromExternalDns(ServerConfigurationManager.Configuration.WanDdns);
+ var certPath = Path.Combine(ServerConfigurationManager.ApplicationPaths.ProgramDataPath, "ssl", "cert_" + certHost.GetMD5().ToString("N") + ".pfx");
+
+ if (!File.Exists(certPath))
{
- NetworkManager.GenerateSelfSignedSslCertificate(
- ServerConfigurationManager.Configuration.CertificatePath,
- GetHostnameFromExternalDns(ServerConfigurationManager.Configuration.WanDdns));
+ Directory.CreateDirectory(Path.GetDirectoryName(certPath));
+
+ try
+ {
+ NetworkManager.GenerateSelfSignedSslCertificate(certPath, certHost);
+ CertificatePath = certHost;
+ }
+ catch (Exception ex)
+ {
+ Logger.ErrorException("Error creating ssl cert", ex);
+ }
}
+ }
+ else
+ {
+ // Custom cert
+ CertificatePath = ServerConfigurationManager.Configuration.CertificatePath;
+ }
- ServerManager.Start(GetUrlPrefixes(), ServerConfigurationManager.Configuration.CertificatePath);
+ try
+ {
+ ServerManager.Start(GetUrlPrefixes(), CertificatePath);
}
catch (Exception ex)
{
@@ -826,6 +849,11 @@ namespace MediaBrowser.Server.Startup.Common
requiresRestart = true;
}
+ if (!string.Equals(CertificatePath, ServerConfigurationManager.Configuration.CertificatePath, StringComparison.OrdinalIgnoreCase))
+ {
+ requiresRestart = true;
+ }
+
if (requiresRestart)
{
NotifyPendingRestart();
@@ -1206,8 +1234,7 @@ namespace MediaBrowser.Server.Startup.Common
try
{
- Uri uri = new Uri(externalDns);
- return uri.Host;
+ return new Uri(externalDns).Host;
}
catch (Exception e)
{